我想将两天前创建的文件从一个文件夹复制到另一个文件夹。
这是我的代码:
src = '/home/user'
dst = '/var/tmp/backup_tmp'
two_days = datetime.now() - timedelta(days=2)
filetime = datetime.fromtimestamp(path.getctime(src))
for file in os.listdir(src):
if file not in os.listdir(dst) and os.path.isfile(file):
if filetime <= two_days:
print "File is more than two days old"
else:
shutil.copy(os.path.join(src, file), dst)
运行脚本时没有任何错误,但文件没有复制到我的目标文件夹。
你能帮我找一下这个错误吗?
的BR, Spyros
答案 0 :(得分:1)
如果循环,你在外面计算文件时间。好像这是你的问题。试试:
for f in os.listdir(src):
filetime = datetime.fromtimestamp(path.getctime(os.path.join(src,f)))
if f not in os.listdir(dst) and os.path.isfile(f):
if filetime <= two_days:
print "File is more than two days old"
else:
shutil.copy(os.path.join(src, f), dst)
答案 1 :(得分:0)
问题是声明: “如果f不在os.listdir(dst)和os.path.isfile(f)中:” 当我删除它一切正常。
的BR, 施皮罗斯