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天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
5天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
5天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
6天前
|
Python
探索Python中的列表推导式
【10月更文挑战第38天】本文深入探讨了Python中强大而简洁的编程工具——列表推导式。从基础使用到高级技巧,我们将一步步揭示如何利用这个特性来简化代码、提高效率。你将了解到,列表推导式不仅仅是编码的快捷方式,它还能帮助我们以更加Pythonic的方式思考问题。准备好让你的Python代码变得更加优雅和高效了吗?让我们开始吧!
|
1月前
|
安全 测试技术 数据库
Python编程--sys模块及OS模块简单用例
Python编程--sys模块及OS模块简单用例
|
1月前
|
JSON 数据格式 Python
Python编程:利用JSON模块编程验证用户
Python编程:利用JSON模块编程验证用户
|
6月前
|
人工智能 安全 Java
Python 多线程编程实战:threading 模块的最佳实践
Python 多线程编程实战:threading 模块的最佳实践
255 5
|
6月前
|
安全 调度 Python
什么是Python中的事件驱动编程?如何使用`asyncio`模块实现异步事件处理?
【2月更文挑战第4天】【2月更文挑战第9篇】什么是Python中的事件驱动编程?如何使用`asyncio`模块实现异步事件处理?
131 0
|
6月前
|
缓存 分布式计算 自然语言处理
Python语言的函数编程模块
Python语言的函数编程模块
|
6月前
|
并行计算 程序员 API
Python多进程编程:利用multiprocessing模块实现并行计算
Python多进程编程:利用multiprocessing模块实现并行计算
754 0