[英]Picking directory without creating list python
如果这是微不足道的,我深表歉意,但我不知道该怎么做
我有一个很大的目录,有很多子目录(300000+)。 在每个目录中,我想运行一个命令(假设我想打开一个文件并向其写入“Hello World”)。 问题是我不想将所有目录加载到一个巨大的列表中并因为内存问题而进行迭代。
我正在考虑关闭在其他地方完成的目录,但我不确定如何选择一个目录而不先将所有目录加载到列表中(随机选择一个目录也可以正常工作,不知道如何要么这样做)
我也读过关于生成器的文章,但也不确定如何实现它们。
谢谢
os.scandir
遍历目录而不先创建list
(与os.listdir
相对)
例子:
import os
dirgen = os.scandir("foo")
print(next(dirgen).name)
在那个例子中,目录foo
被扫描,但只有第一个条目被迭代(手动) next
。 这意味着如果你在循环中使用它,它不会存储目录条目,甚至更好:你可以在完成后跳出循环(短路)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.