当copy2
在for
循环中迭代多个文件夹时,它不会复制所有内容。但是,当我在一个文件夹上执行它时,一切正常,文件夹中的所有内容都被复制。
以下是我一直在测试的代码片段
for root, dirnames, filenames in os.walk(presetsPath):
for filename in fnmatch.filter(filenames, '*.adg'):
name = filename.replace(extensionAbleton, '')
index = int(name.split(' ')[-1])-10000
name = presetsSorted[index]
#print index, name, presets[name]['bankName']
bankName = presets[name]['bankName'].replace("/", " ")
category = presets[name]['categoryName'].replace("/", " ")
targetRoot = os.path.join(outputPath, instrument, bankName, category)
#print "root", targetRoot
fullPath = os.path.join(root, filename)
targetName = presets[name]['name']+extensionAbleton
targetFullPath = os.path.join(targetRoot, targetName)
targetFullPath = targetFullPath.replace("//", "/")
logging.debug("name="+str(name)+" index="+str(index)+" category="+presets[name]['categoryName']+" path="+targetName)
#print targetFullPath
if not os.path.exists(targetRoot):
os.makedirs(targetRoot)
shutil.copy2(fullPath, targetFullPath)
我不明白为什么复制单个文件夹有效,但使用上面的代码段并不会复制所有文件。这与队列有什么关系吗?我有什么更聪明的方法来做这个副本吗?