有沒有辦法將目錄更改為最近生成的目錄?我每 12 小時創建一個新目錄,并希望迭代循環最近的 x 個目錄。與此類似但用于目錄。如何使用python獲取文件夾中的最新文件
1 回答

茅侃侃
TA貢獻1842條經驗 獲得超21個贊
以下應該基本上有效。
import os
parent_dir = "." # or whatever
paths = [os.path.join(parent_dir, name) for name in os.listdir(parent_dir)]
dirs = [path for path in paths if os.path.isdir(path)]
dirs.sort(key=lambda d: os.stat(d).st_mtime)
os.chdir(dirs[-1])
請注意,這將更改為具有最近修改時間的目錄。如果先前存在的目錄被修改(通過創建或刪除其中的某些內容),則這可能不是最近創建的目錄;有關目錄創建時間的信息不會存儲在任何地方 - 當然,除非您使用反映創建時間的目錄命名,在這種情況下,您可以根據名稱而不是修改時間進行排序。
我在這里并沒有費心去防范在運行所需的短時間內創建/刪除目錄的競爭條件(這可能會導致它引發異常)。老實說,這種情況不太可能發生,如果您想處理這種可能性,只需執行以下操作就足夠了:
while True:
try:
#all the above commands
break
except OSError:
pass
添加回答
舉報
0/150
提交
取消