我的目录中有很多栅格文件(超过600个),需要将其复制到新位置(包括其目录结构)。有没有一种方法可以使用shutil.copytree()来跟踪复制状态?通常,对于文件,我将使用以下代码,但不确定如何使用shutil.copytree()进行相同操作:

for currentFolder, subFolder, fileNames in os.walk(sourceFolder):
   for i in fileNames:
        if i.endswith(".img"):
            print "copying {}".format(i)
            shutil.copy(os.path.join(currentFolder,i), outPutFolder)

最佳答案

是的,通过利用为“ignore”参数传入的函数名称,可以实现类似的操作。实际上,在python文档的示例部分中给出了类似的内容:
https://docs.python.org/2/library/shutil.html#copytree-example

下面也粘贴了示例:

from shutil import copytree
import logging

def _logpath(path, names):
    logging.info('Working in %s' % path)
    return []   # nothing will be ignored

copytree(source, destination, ignore=_logpath)

关于Python shutil.copytree()可以跟踪复制状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26496821/

10-09 18:47