2014-12-02 250 views
0

我想使用os.listdir('somefilepath')列出网络驱动器中的文件。尽管文件数量不是很大(目录中大约有3000个小文件),但这项任务只需要永久/不完成。当我看着任务管理器时,python会花费越来越多的内存来完成任务。os.listdir()在Python中列出文件从网络驱动器使用太多内存/需要很长时间

我已经尝试使用os.walk代替glob.glob/glob.iglob函数,但它没有帮助。 网络延迟是否存在问题?什么是最好的检查方法?

+0

3000文件将很快发现磁盘上。你所描述的问题几乎可以肯定与网络延迟有关。 – CoryKramer 2014-12-02 15:40:41

+0

谢谢。你能推荐一个工具,最好通过python,我可以用它来检查吗? – user3438258 2014-12-02 15:41:20

+0

最好?实际上你想要一个非python工具来验证这个行为与python无关。好的旧'ls/dir'怎么样? – 2014-12-02 15:53:58

回答

0

尝试使用可在Python 3中使用的scandir它应该表现更好。

代码可能是这个样子:

import os 

file_list = os.scandir('your_dir_path') 

看到scandir 1.3PEP 471

+0

为了让雅回答非常好,添加一个例子。 :) – 2016-09-10 20:19:19

+0

我问了一个关于'os.listdir'性能的类似问题。看[链接](http://stackoverflow.com/questions/39429978/measure-progress-time-left-while-os-listdir-is-generating-a-list-python) – 2016-09-10 20:19:53

相关问题