Я использую скрипт для копирования файлов на общий диск. Размер одного из файлов обычно составляет около 3 ГБ. Копирование довольно медленное, по сравнению с ручным копированием. (все на винде)
Как изменить размер буфера в моем коде? Что-то похожее на ответ в этом вопросе: Python слишком медленно копирует файл большего размера
def copyAllFiles():
src_files = os.listdir(src)
for file_name in src_files:
full_file_name = os.path.join(src, file_name)
if (os.path.isfile(full_file_name)):
shutil.copy(full_file_name, newPath)
print("copy done")
или есть рекомендация использовать другой метод копирования?
shutil
использует для внутреннего копирования. Затем он назначает свою версию для использования Shutil:shutil.copyfileobj = _copyfileobj_patched
- после этого каждый раз, когда Shutil внутри вызываетcopyfileobj
, вместо этого он будет вызывать свою пропатченную версию_copyfileobj
, которая имеет больший буфер по умолчанию, что делает работу с Windows более гладкой. вы можете заглянуть в исходники, но я предполагаю, что Shutil.copy() внутренне использует другой, который он исправляет. - person Patrick Artner   schedule 23.05.2018