我已經根據我發現的其他答案給了它一個體面的嘗試,但沒有管理任何固體(我的解決方案是可怕的緩慢,但也許沒有其他方式)。基本上,我有一個名爲「scratch」的文件夾,用戶可以在其中創建自己的文件夾來轉儲他們的數據。
我需要我的腳本來找出哪些用戶的文件夾已超過30天未被使用。我想我可以通過查找用戶文件夾中最近修改的目錄(通過遞歸搜索)來實現此目的,然後過濾掉較舊的目錄。如何在目錄(python)目錄中找到最近修改過的文件夾?
代碼來獲得用戶的目錄列表:
dirlist = list()
for filename in os.listdir("\\\\abg-netapp1\\Scratch\\"):
dirlist.append(filename)
那麼我可以遍歷「dirlist」的每個索引創建一個完整路徑搜索:
x=0
for item in dirlist:
max_mtime = 0
for dirname,subdirs,files in os.walk("\\\\abg-netapp1\\Scratch\\" + dirlist[x]):
for fname in subdirs:
full_path = os.path.join(dirname, fname)
mtime = os.stat(full_path).st_mtime
if mtime > max_mtime:
max_mtime = mtime
max_dir = dirname
max_file = fname
print max_dir, max_file, time.strftime('%Y-%m-%d', time.localtime(max_mtime))
x+=1
我知道我還沒有過濾超過30天的目錄,只是想看看是否有什麼我可以改變這個代碼。
我是否正在以這種錯誤的方式去解決這個問題?任何問題或任何然後讓我知道,謝謝!
似乎要處理它,直到它找到具有某種權限的文件:WindowsError:[錯誤5]訪問被拒絕:'\\\\ abg-netapp1 \\ Scratch \\ user \\ file。任何想法如何忽略這些? – ashleh 2012-07-31 11:01:28
@AshleyJohnKent稍微重新工作,包括異常處理 – 2012-07-31 11:17:04
@AshleyJohnKent我能想到的唯一原因是,我在發佈的代碼中有一個錯字 - 「get_files」應該是'list_user_files' – 2012-07-31 11:51:48