Python如何获取未知文件名的新增文件的创建时间?
处理未知文件名的文件夹文件获取方案
核心思路
不需要预先知道文件名,只需要通过文件的创建/修改时间,找出文件夹中最新添加的文件,直接将其路径赋值给变量即可。
单次获取最新文件代码示例
import os # 替换成你的目标文件夹路径 target_dir = "./user_files" # 筛选出文件夹下的所有文件(排除子文件夹) file_list = [os.path.join(target_dir, filename) for filename in os.listdir(target_dir) if os.path.isfile(os.path.join(target_dir, filename))] if file_list: # 按文件创建时间排序,取最新的那个 latest_file_path = max(file_list, key=lambda f: os.path.getctime(f)) # 这里就得到了需要的path变量 print(f"最新文件路径:{latest_file_path}") else: print("目标文件夹中无文件")
实时监控新增文件代码示例
如果需要程序持续运行,实时捕捉用户放入的新文件,可以用循环定期检查:
import os import time target_dir = "./user_files" # 记录上次检查的时间戳,初始值设为当前时间 last_check_timestamp = time.time() while True: file_list = [os.path.join(target_dir, filename) for filename in os.listdir(target_dir) if os.path.isfile(os.path.join(target_dir, filename))] if file_list: latest_file = max(file_list, key=lambda f: os.path.getctime(f)) file_create_time = os.path.getctime(latest_file) # 判断该文件是否是上次检查后新增的 if file_create_time > last_check_timestamp: print(f"检测到新文件:{latest_file}") path = latest_file # 赋值给目标变量 last_check_timestamp = file_create_time # 更新检查时间 time.sleep(2) # 每隔2秒检查一次,可根据需求调整间隔
注意事项
os.path.getctime()在Windows系统返回文件创建时间,在Unix/Linux系统返回元数据最后修改时间;如果需要以文件内容修改时间为准,可替换为os.path.getmtime()- 若目标文件夹文件数量极多,遍历所有文件的效率会降低,可根据实际场景优化筛选逻辑
- 不需要额外安装第三方库,用Python标准库即可实现需求
内容的提问来源于stack exchange,提问作者TVisi0n
相关产品推荐
相关产品推荐

