栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 面试经验 > 面试问答

Python复制较大的文件太慢

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python复制较大的文件太慢

只是添加一些有趣的信息:WIndows不喜欢shutil实现内部使用的微小缓冲区。

我已经快速尝试了以下方法:

  • 将原始的 shutil.py 文件复制到示例脚本文件夹,并将其重命名为 myshutil.py
  • 将第一行更改为
    import myshutil
  • 编辑了 myshutil.py 文件并从以下更改了 copyfileobj

def copyfileobj(fsrc,fdst,length = 16 * 1024):

def copyfileobj(fsrc,fdst,length = 16 * 1024 * 1024):

使用16 MB的缓冲区而不是16 KB的缓冲区可显着提高性能。

也许Python需要针对Windows内部文件系统特征进行一些 调整

编辑:

在这里找到了更好的解决方案。在文件的开头,添加以下内容:

import shutildef _copyfileobj_patched(fsrc, fdst, length=16*1024*1024):    """Patches shutil method to hugely improve copy speed"""    while 1:        buf = fsrc.read(length)        if not buf: break        fdst.write(buf)shutil.copyfileobj = _copyfileobj_patched

这是当前实现的简单补丁,并且在这里可以完美地工作。

Python 3.8+: Python
3.8进行了一次重大检查,包括将Windows缓冲区从16KB增加到1MB(仍小于此票证中建议的16MB)。看到票,比较



转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/640217.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号