请原谅我的无知,我是编程和python的新手,下面的代码仅当在过去24小时内对文件进行了修改时,才允许我复制文件。
有没有更好的方法可以扭曲程序以考虑最后8个字符,即文件创建的日期_20191108。文件通常如下所示
7 *** _ 13_01_2176_20191108.txt
import time
import os
import shutil
giorno = 24 * 60 * 60
src = 'C:/Users/Daniels/Desktop/FileMover/SourceA'
dst = 'C:/Users/Daniels/Desktop/FileMover/SourceB'
now = time.time()
primo = now - giorno
def last_mod_time(file_name):
return os.path.getmtime(file_name)
for file_name in os.listdir(src):
src_filename = os.path.join(src, file_name)
if last_mod_time(src_filename) > primo:
dst_filename = os.path.join(dst, file_name)
shutil.copy(src_filename, dst_filename)
print(file_name)
谢谢!
答案 0 :(得分:0)
我不确定我是否正确回答了您的问题。
如果要使用文件名生成日期,则可以简单地将其解析并将其传递给datetime.datetime()
。请记住传递适当的tzinfo信息。
import datetime
fname = '20191112.txt'
year = int(d[:4])
month = int(d[4:6])
day = int(d[6:8])
date = datetime.datetime(year, month, day, datetime.tzinfo=timezone.utc)
现在日期是一个日期时间对象。
>>> date
datetime.datetime(2019, 11, 2, 0, 0)
如果脚本中需要的话,可以轻松地将其转换为UNIX时间戳。
>>> date.timestamp()
1572649200.0