我正在使用下面的代碼遞歸地創建所有目錄的列表(文本文件)。由於有數以千計的子目錄,我不想一次又一次地創建列表,但想要更新/插入最近一次列出的新創建的列表。使用新代碼更新目錄列表
有沒有很好的方法來做到這一點?
import os, sys
rootdir ="/store/user/"
myusers=['u1','u2','u3','u4','u5','u6','u7']
for myuser in myusers:
rootuserdir=os.path.join(rootdir, myuser)
for myRoot, mySubFolders, myFiles in os.walk(rootuserdir):
for mySubFolder in mySubFolders:
dirpath = os.path.join(myRoot, mySubFolder)
print dirpath
你想要新的/刪除的目錄,這樣你就可以看到添加/刪除了什麼,或者你問這樣可以提高速度?正如@Sven Marnach在他的回答中提到的那樣,由於您仍然在整個目錄中運行os.walk(),因此您不會節省任何時間。 – ernie 2012-07-26 16:40:27
是的,我需要更新的列表,因爲我會將它們上傳到數據庫,所以如果沒有其他方式重做它,我會這樣做。 – iamauser 2012-07-26 17:09:57
正如@Jon Clements所提到的,這是真正的任務,inotify對於(至少在Linux系統上)是很好的,pyinotify提供了一個很好的python界面。 – ernie 2012-07-26 17:14:52