我有一个小程序,该程序将所有文件移出目录,然后在所有子目录中搜索其他文件,该文件也会移出。
import shutil
import os
import ctypes
import sys
copyfrom = r'D:\Downloads\'
copyto = r'D:\Downloads\'
for r, d, f in os.walk(copyfrom):
for file in f:
if os.path.join(r, file) == copyto:
continue
print(os.path.join(r, file))
shutil.move(os.path.join(r, file), os.path.join(copyto, file))
它现在可以工作,但是将覆盖每个文件名与现有文件相同的文件。例如,如果我有banana.mp3和banana.jpeg,它将覆盖其中一个文件。相反,我希望将具有现有名称的文件重命名。
答案 0 :(得分:0)
您可以使用os.path.exists(destination)
检查文件是否存在。但是您应该确保不会发生任何竞争情况。因此,您可以使用os.open()
之类的命令打开现有文件,执行工作,然后关闭文件。