为了账号安全,请及时绑定邮箱和手机立即绑定

将工作目录更改为最近生成的目录

将工作目录更改为最近生成的目录

皈依舞 2023-10-18 21:41:37
有没有办法将目录更改为最近生成的目录?我每 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


查看完整回答
反对 回复 2023-10-18
  • 1 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信