猿问

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

有没有办法将目录更改为最近生成的目录?我每 12 小时创建一个新目录,并希望迭代循环最近的 x 个目录。

与此类似但用于目录。

如何使用python获取文件夹中的最新文件


皈依舞
浏览 94回答 1
1回答

茅侃侃

以下应该基本上有效。import osparent_dir = "."  # or whateverpaths = [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
随时随地看视频慕课网APP

相关分类

Python
我要回答