3

在这里,我在 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)

在执行此操作时,如果我复制一个冗长的文件,则复制需要花费太多时间。有什么减少时间的建议吗?

4

2 回答 2

12

如果您正在处理大文件,您可以尝试将文件打开/写入作为副本。正如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)
于 2013-12-04T09:44:30.613 回答
1

从 Python 3.8 开始,shutils提供特定于平台的更快的复制文件替代方案。在此处阅读更多信息:

于 2021-09-10T09:13:05.670 回答