有没有办法将目录更改为最近生成的目录?我每 12 小时创建一个新目录,并希望迭代循环最近的 x 个目录。与此类似但用于目录。如何使用python获取文件夹中的最新文件
1 回答
![?](http://img1.sycdn.imooc.com/533e4d470001a00a02000200-100-100.jpg)
茅侃侃
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
提交
取消