[英]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.