我是这个python的新手并尝试编写程序以递归方式将文件夹结构中的jpgs复制到新文件夹,如果文件名是重复的文件名则更改文件名。
srcDir = 'Users/photos/2008/thumbnails/' #files in two more dir deep
toDir = 'Users/external_drive/2008/'
shutil.copy(srcDir,toDir)
if filename = filename
filename + '_2.jpg'
答案 0 :(得分:1)
以下脚本应该可以满足您的需求。它使用os.walk
递归所有文件夹,查找扩展名为.jpg
的文件。如果toDir
中已经存在文件名,它会一直递增文件计数器,直到找到一个空槽,并显示所有副本的日志:
import os, shutil
srcDir = 'Users/photos/2008/thumbnails/' #files in two more dir deep
toDir = 'Users/external_drive/2008/'
try:
os.makedirs(toDir)
except:
pass
for root, dirs, files in os.walk(srcDir, topdown=True):
for file in files:
src = os.path.join(root, file)
target = os.path.join(toDir, file)
if file.lower().endswith('.jpg'):
index = 1
while os.path.exists(target):
index +=1
target = os.path.join(toDir, os.path.splitext(file)[0]+ "_%d.jpg" % index)
print "Copying: '%s' to '%s'" % (src, target)
shutil.copy(src, target)
答案 1 :(得分:0)