欢迎光临散文网 会员登陆 & 注册

用Python实现根据时间交叉重叠查找文件的实用功能

2023-05-12 05:23 作者:机器朗读  | 我要投稿

程序支持输入一个时间范围,并对一些文件进行查找,根据每个文件的创建时间和最后更新时间,判断这个输入的时间范围在时间上是否与某些文件的创建时间和最后更新时间有所交叉重叠,找出存在时间交叉重叠的文件,并列出这些文件名和创建时间及最后更新时间。

import os
import datetime

def find_files(start_dir, start_time, end_time):
    for root, dirs, files in os.walk(start_dir):
        for filename in files:
            file_path = os.path.join(root, filename)
            creation_time = datetime.datetime.fromtimestamp(os.path.getctime(file_path))
            modified_time = datetime.datetime.fromtimestamp(os.path.getmtime(file_path))
            if start_time <= creation_time <= end_time or start_time <= modified_time <= end_time:
                print(f"{filename}\nCreation Time: {creation_time}\nModified Time: {modified_time}\n")

if __name__ == '__main__':
    start_dir = input("请输入需要查找的文件夹路径:")
    start_time = input("请输入起始时间(格式为yyyy-mm-dd HH:MM:SS):")
    end_time = input("请输入结束时间(格式为yyyy-mm-dd HH:MM:SS):")
    start_time = datetime.datetime.strptime(start_time, "%Y-%m-%d %H:%M:%S")
    end_time = datetime.datetime.strptime(end_time, "%Y-%m-%d %H:%M:%S")
    find_files(start_dir, start_time, end_time)

该程序使用 os 模块来遍历指定文件夹及其子文件夹中的文件,获取每个文件的创建时间和最后修改时间,并与用户输入的时间范围进行比较。如果某个文件的创建时间或最后修改时间在输入的时间范围内,则认为该文件与时间范围有交叉重叠,将该文件的信息输出到控制台。

下面是一个使用示例:


请输入需要查找的文件夹路径:C:\Users\username\Desktop\test
请输入起始时间(格式为yyyy-mm-dd HH:MM:SS):2022-01-01 00:00:00
请输入结束时间(格式为yyyy-mm-dd HH:MM:SS):2022-12-31 23:59:59
file1.txt
Creation Time: 2022-03-15 10:05:23
Modified Time: 2022-05-01 14:30:12

file2.docx
Creation Time: 2022-08-10 15:20:05
Modified Time: 2022-09-20 11:40:28

在这个例子中,程序搜索了文件夹 C:\Users\username\Desktop\test 中的所有文件,并查找了创建时间和最后修改时间在 2022 年内的文件。找到了两个文件(file1.txtfile2.docx),它们的创建时间或修改时间在用户指定的时间范围内,因此它们被列出了,并输出了它们的创建时间和最后修改时间。

用Python实现根据时间交叉重叠查找文件的实用功能的评论 (共 条)

分享到微博请遵守国家法律