1 回答

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超21個(gè)贊
以下應(yīng)該基本上有效。
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])
請注意,這將更改為具有最近修改時(shí)間的目錄。如果先前存在的目錄被修改(通過創(chuàng)建或刪除其中的某些內(nèi)容),則這可能不是最近創(chuàng)建的目錄;有關(guān)目錄創(chuàng)建時(shí)間的信息不會存儲在任何地方 - 當(dāng)然,除非您使用反映創(chuàng)建時(shí)間的目錄命名,在這種情況下,您可以根據(jù)名稱而不是修改時(shí)間進(jìn)行排序。
我在這里并沒有費(fèi)心去防范在運(yùn)行所需的短時(shí)間內(nèi)創(chuàng)建/刪除目錄的競爭條件(這可能會導(dǎo)致它引發(fā)異常)。老實(shí)說,這種情況不太可能發(fā)生,如果您想處理這種可能性,只需執(zhí)行以下操作就足夠了:
while True:
try:
#all the above commands
break
except OSError:
pass
添加回答
舉報(bào)