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

相关文章
|
5月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
369 3
|
5月前
|
数据处理 Python
Python编程:类型转换与输入输出
本教程介绍Python中输入输出与类型转换的基础知识,涵盖input()和print()的使用,int()、float()等类型转换方法,并通过综合示例演示数据处理、错误处理及格式化输出,助你掌握核心编程技能。
599 3
|
5月前
|
索引 Python
Python 列表切片赋值教程:掌握 “移花接木” 式列表修改技巧
本文通过生动的“嫁接”比喻,讲解Python列表切片赋值操作。切片可修改原列表内容,实现头部、尾部或中间元素替换,支持不等长赋值,灵活实现列表结构更新。
239 1
|
5月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
485 0
|
Python 人工智能 数据可视化
Python模块与包(八)
Python模块与包(八)
190 0
Python模块与包(八)
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
626 159
|
Python
Python的模块和包
总之,模块和包是 Python 编程中非常重要的概念,掌握它们可以帮助我们更好地组织和管理代码,提高开发效率和代码质量
473 159
|
数据可视化 Python
如何在Python中解决模块和包的依赖冲突?
解决模块和包的依赖冲突需要综合运用多种方法,并且需要团队成员的共同努力和协作。通过合理的管理和解决冲突,可以提高项目的稳定性和可扩展性
|
持续交付 Python
如何在Python中自动解决模块和包的依赖冲突?
完全自动解决所有依赖冲突可能并不总是可行,特别是在复杂的项目中。有时候仍然需要人工干预和判断。自动解决的方法主要是提供辅助和便捷,但不能完全替代人工的分析和决策😉。

推荐镜像

更多