加速python中的shutil.copy

时间:2013-12-04 08:42:56

标签: python image copy-paste shutil

这里我使用python中的代码,如

    if option2 == 1:
        try:
            global option2, Nimages

            for sur in fm_path: 
                shutil.copy(sur,file1) # here how to speed up the copy function 

            option2 = 0
        except shutil.Error as e:
            print('Error: %s' % e)

执行此操作时。如果我复制一个冗长的文件,它需要花费太多时间来复制。有什么建议可以缩短时间吗?

1 个答案:

答案 0 :(得分:8)

如果您正在处理大尺寸的文件,您可以尝试将文件打开/写入作为副本。如Faster Python File Copy中所述,shutil.copyfileobj中的默认缓冲区大小(在shutil中执行文件复制的真正功能)是16 * 1024,16384。您可以使用更大的缓冲区大小

前,

with open(src, 'rb') as fin:
    with open(dst, 'wb') as fout:
        shutil.copyfileobj(fin, fout, 128*1024)