def copytree(src, dst, symlinks=False, ignore=None):
for item in os.listdir(src):
s = os.path.join(src, item)
d = os.path.join(dst, item)
if os.path.isdir(s):
print "copying"
shutil.copytree(s, d, symlinks, ignore=None)
else:
shutil.copy2(s, d)
def main ():
#path to input
src="/home/user/abcd"
#here path to output
dst="/home/user/dirtest"
copytree(src,dst)
if __name__ == '__main__':
main()
如果文件已存在,如何将文件复制到目标文件夹中?应将较新的文件重命名为filename.x.ext。
例如 - 如果我尝试复制newfile.jpg
并且它已经存在于文件夹中,则应将其复制为newfile.1.jpg
。如果newfile.1.jpg
也已存在,则新文件应命名为newfile.2.jpg
,依此类推
答案 0 :(得分:2)
def getUniqueName(destPath):
d = destPath[:]
count = 0
while os.path.exists(d):
count += 1
parts = os.path.splitext(d)
d = "%s.%s%s"%(parts[0],count,parts[1])
return d
我认为这样可行
然后将其称为
shutil.copy2(s, getUniqueName(d))
当你shutil.copytree
时,不会有帮助