Python编程-利用datetime模块生成当前年份之前指定的间隔所有年份的日期列表和csv文件

简介: Python编程-利用datetime模块生成当前年份之前指定的间隔所有年份的日期列表和csv文件

Python编程-利用datetime模块生成当前年份之前的指定所有年份的日期列表和csv文件
今天学习Pandas日期数据处理,需要利用年月日的日期数据而且是csv文件格式。为了数据准确严谨,于是编写了这个程序,感兴趣的可以根据自己需要进行修改。分享源码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :3/24/22 10:56 AM
# 文件      :生成年月日csv.py
# IDE      :PyCharm

import csv
import datetime

def create_ymd_lst():
    import datetime

    nd = datetime.date.today()
    date_lst = []

    y = int(input('输入当前年份之前间隔数字:'))
    for i in range(y):
        year = nd.year - i
        date_lst.append(str(year))
    mon_day_lst = []
    for m in range(1, 13):
        if m == 2:
            for d in range(1, 29):
                if d < 10:
                    mon_day_lst.append('-02-0' + str(d))
                else:
                    mon_day_lst.append(('-02-') + str(d))

        elif m in [4, 6, 8, 9, 11]:
            for d in range(1, 31):
                if d < 10 and m != 11:
                    mon_day_lst.append(str(f'-0{m}-0' + str(d)))
                elif d >= 10 and m != 11:
                    mon_day_lst.append(str(f'-0{m}-' + str(d)))
                elif d < 10:
                    mon_day_lst.append(str(f'-{m}-0' + str(d)))
                else:
                    mon_day_lst.append(str(f'-{m}-' + str(d)))
        else:
            for d in range(1, 32):
                if d < 10 and m < 10:
                    mon_day_lst.append(str(f'-0{m}-0' + str(d)))
                elif d >= 10 and m < 10:
                    mon_day_lst.append(str(f'-0{m}-' + str(d)))
                elif d < 10 and m >= 10:
                    mon_day_lst.append(str(f'-{m}-0' + str(d)))
                else:
                    mon_day_lst.append(str(f'-{m}-') + str(d))
    # 对年份按生序排序
    new_year_lst = list(reversed(date_lst))
    # 年月日空列表,然后添加年月日字符串
    ymd_lst = []
    for year in new_year_lst:
        for md in mon_day_lst:
            ymd_lst.append(year + md)
            print(year + md)
    # 返回一个年月日列表
    return ymd_lst

 # 调用 生成年月日列表的函数
ymd_lst = create_ymd_lst()
# 数字序号列表,从3开始
num_lst = []

for num in range(len(ymd_lst)):
    num_lst.append(num)



date_dict = {
   'date':ymd_lst, 'number': num_lst}
with open('date.csv', 'w') as f:
    writer = csv.writer(f)

    writer.writerow(date_dict)
    # 循环的次数是根据字典的值的长度设定,取决于添加多少个元素
    for i in range(len(ymd_lst)):
            # 每循环一次生成一个临时列表,然后写入csv文件
        templist = []
        templist.append(ymd_lst[i])
        templist.append(num_lst[i]+3)
            # 写对象把每行数据写入csv
        writer.writerow(templist)

运行结果如下:

部分数据
image.png

相关文章
|
10月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
543 3
|
10月前
|
数据处理 Python
Python编程:类型转换与输入输出
本教程介绍Python中输入输出与类型转换的基础知识,涵盖input()和print()的使用,int()、float()等类型转换方法,并通过综合示例演示数据处理、错误处理及格式化输出,助你掌握核心编程技能。
784 3
|
10月前
|
索引 Python
Python 列表切片赋值教程:掌握 “移花接木” 式列表修改技巧
本文通过生动的“嫁接”比喻,讲解Python列表切片赋值操作。切片可修改原列表内容,实现头部、尾部或中间元素替换,支持不等长赋值,灵活实现列表结构更新。
495 1
|
10月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
844 0
|
安全 Python
Python如何使用datetime模块进行日期和时间的操作
Python如何使用datetime模块进行日期和时间的操作
363 1
|
索引 Python
python日期操作
python日期操作用到库time, datetime 格式化字符串含义: %a Abbreviated weekday name 本地化星期缩略格式 %A Full weekday name 本地化星期完整格式 %b...
1298 118
|
Python
python时间和日期操作(datetime和monthrange,timedelta)
python时间和日期操作(datetime和monthrange,timedelta)
312 0
|
Python
Python之日期操作及转换详解
# 导入datetime模块,用以操作时间 import datetime # 导入time模块 import time # 获取当前时间 格式: 年-月-日 时:分:秒 .
1599 0

推荐镜像

更多