python输入时间_python 日期时间范围遍历操作

我们经常在离线任务中,用到基于输入的日期参数,计算指定日期范围内的相关数据统计,如统计从昨天算起近 30 天每天的统计数据,这里列出 python 几种常用的时间日期范围遍历操作。

推荐方式

利用 python 标准库的 datetime 模块的 date 和 timedelta 类进行范围限定,并结合 range 内置函数进行遍历。

假设输入的参数是昨天的日期,遍历最近每天的日期,并对每天进行业务 todo,示例如下:

from datetime import datetime, timedelta

# 模拟输入的昨日日期参数

from_arg_dt = '2020-09-07'

# 字符串日期转换成 datetime.datetime 对象

end_datetime = datetime.strptime(from_arg_dt, '%Y-%m-%d')

# 遍历近 30 天的日期

for i in range(30):

# datetime 对象和 timedelta 对象可以进行日期时间加减操作,返回的是新的 datetime 对象

dt = end_datetime - timedelta(days=30 - i)

# 如需,也可以转换成 str 对象

dt_str = dt.strftime('%Y-%m-%d')

# todo other things

如果明确指定的日期的起始时间,遍历操作代码如下:

from datetime import date, timedelta

# 模拟输入起始及截止日期

begin = date(2020, 8, 20)

end = date(2020, 9, 7)

# range 函数进行遍历

for i in range((end - begin).days + 1):

# date 对象和 timedelta 进行时间间隔计算,并返回 date 对西那个

day = begin + timedelta(days=i)

# 也可以根据需要,转换成 str 字符串对象

day_str = day.strftime('%Y-%m-%d')

# todo other things

datetime 模块的其中一个核心 api 是,timedelta 对象可以和 datetime、date、time 对象进行时间加减操作,且返回的还是原有对象类型(新的对象)。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用Python的datetime模块来处理时间日期,然后使用os模块遍历指定目录下的所有文件,筛选出符合条件的文件。 以下是一个示例程序,演示如何遍历指定目录下的所有文件,筛选出指定日期之后的文件: ```python import os from datetime import datetime, timedelta # 指定目录和日期 directory = '/path/to/directory' date_str = '2022-03-21' # 指定日期,格式为'YYYY-MM-DD' # 将日期字符串转换为datetime对象 date = datetime.strptime(date_str, '%Y-%m-%d') # 遍历指定目录下的所有文件 for filename in os.listdir(directory): # 获取文件的修改时间 filepath = os.path.join(directory, filename) modified_time = datetime.fromtimestamp(os.path.getmtime(filepath)) # 判断文件是否符合条件 if modified_time >= date: print(filepath) # 在这里执行对符合条件的文件的操作 ``` 在这个示例程序中,我们首先指定了要遍历的目录和日期。然后,我们将日期字符串转换为datetime对象,以便我们可以将其用于比较。接下来,我们遍历目录下的所有文件,并获取每个文件的修改时间。最后,我们将修改时间与指定日期进行比较,如果文件的修改时间晚于指定日期,就执行对符合条件的文件的操作。 在上面的程序中,我们只是简单地打印了符合条件的文件的路径。您可以在if语句中执行任何您需要的操作,例如将符合条件的文件复制到另一个目录中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值