使用shutil.copy2的循环python不会复制OS X中的所有内容

时间:2015-04-18 11:06:21

标签: python file shutil

copy2for循环中迭代多个文件夹时,它不会复制所有内容。但是,当我在一个文件夹上执行它时,一切正常,文件夹中的所有内容都被复制。

以下是我一直在测试的代码片段

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)

我不明白为什么复制单个文件夹有效,但使用上面的代码段并不会复制所有文件。这与队列有什么关系吗?我有什么更聪明的方法来做这个副本吗?

0 个答案:

没有答案