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

相关文章
|
18天前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
182 7
|
18天前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
130 3
|
18天前
|
数据处理 Python
Python编程:类型转换与输入输出
本教程介绍Python中输入输出与类型转换的基础知识,涵盖input()和print()的使用,int()、float()等类型转换方法,并通过综合示例演示数据处理、错误处理及格式化输出,助你掌握核心编程技能。
262 3
|
19天前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
171 0
|
安全 测试技术 数据库
Python编程--sys模块及OS模块简单用例
Python编程--sys模块及OS模块简单用例
161 1
|
JSON 数据格式 Python
Python编程:利用JSON模块编程验证用户
Python编程:利用JSON模块编程验证用户
109 1
|
人工智能 安全 Java
Python 多线程编程实战:threading 模块的最佳实践
Python 多线程编程实战:threading 模块的最佳实践
425 5
|
安全 调度 Python
什么是Python中的事件驱动编程?如何使用`asyncio`模块实现异步事件处理?
【2月更文挑战第4天】【2月更文挑战第9篇】什么是Python中的事件驱动编程?如何使用`asyncio`模块实现异步事件处理?
338 0
|
缓存 分布式计算 自然语言处理
Python语言的函数编程模块
Python语言的函数编程模块
|
并行计算 程序员 API
Python多进程编程:利用multiprocessing模块实现并行计算
Python多进程编程:利用multiprocessing模块实现并行计算
1189 0

推荐镜像

更多