Python中文
首页
教程
问答
标签
搜索
登录
注册
os.walk速度很慢,有方法可以优化吗?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在使用<code>os.walk</code>构建数据存储的映射(此映射稍后将在我正在构建的工具中使用)</p> <p>这是我当前使用的代码:</p> <pre><code>def find_children(tickstore): children = [] dir_list = os.walk(tickstore) for i in dir_list: children.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(i[0]) return children </code></pre> <p>我对此做了一些分析:</p> <p><code>dir_list = os.walk(tickstore)</code>立即运行,如果我对<code>dir_list</code>不做任何操作,则此函数立即完成。</p> <p>它在<code>dir_list</code>上迭代需要很长时间,即使我没有<code>append</code>任何东西,只要在它上迭代就需要时间。</p> <p><code>Tickstore</code>是一个大数据存储,有大约10000个目录。</p> <p>目前,完成此功能大约需要35分钟。</p> <p>有没有办法加快速度?</p> <p>我已经研究了<code>os.walk</code>的替代方案,但它们似乎都没有在速度方面提供太多优势。</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p><code>os.walk</code>当前非常慢,因为它首先列出目录,然后对每个条目执行<code>stat</code>操作,以查看它是目录还是文件。</p> <p>PEP 471中提出了一个改进,在Python 3.5中很快就会出现。同时,您可以使用scandir包在Python 2.7中获得相同的好处</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
在python3中使用Scipy pearsonr函数
2 回答
在Python3中使用scipy对多个lorentzian进行数据拟合
1 回答
在Python3中使用Script=argv
5 回答
在python3中使用selenium webdriver进行未解析的回溯
6 回答
在python3中使用selenium和phantomjs的网页截图之前如何等待?
5 回答
在Python3中使用Selenium和Requests模块从网页获取文件
10 回答
在python3中使用SIGINT终止函数
6 回答
在Python3中使用SIGTERM时,允许进程完成而不是中断
10 回答
在python3中使用smtplib发送XML内容
1 回答
在python3中使用socket库(RFCOMM模式)重新连接蓝牙设备?
8 回答
在python3中使用sounddevice和numpy编写wav文件
8 回答
在python3中使用Sqlalchemy插入MySQL查找类型错误的原因
10 回答
在python3中使用sqlite、pandas和sqlalchemy很难让rollback工作
3 回答
在python3中使用SQLite的FTS3/4
7 回答
在Python3中使用struct.calcsize()和len()有区别吗?
8 回答
在python3中使用substring函数时发生TypeError
6 回答
在Python3中使用Tkinter entry小部件写入串行设备
4 回答
在python3中使用tkinter时,如何在每次按下函数时获得运行该函数的按钮?
5 回答
在python3中使用tkinter的子帧
5 回答
在Python3中使用tryexcept块时,如何避免使用未初始化的变量?
9 回答