关于python:如何获取目录中最后列出的目录的路径?

How do I get the path of the last listed directory in a directory?

本问题已经有最佳答案,请猛点这里访问。

我有一个像这样的文件夹设置。

1
2
3
4
5
myscript.py
directory/
- subdir1/
- subdir2/
- subdir3/

有时新文件夹会添加到directory/中,但每个新文件夹总是命名为subdirX,其中x是一个递增的数字。

如何获取要在directory/中列出的最后一个文件夹的路径?


1
2
x = ['subdir{}'.format(i) for i in range(100)]
max(x, key=lambda n: int(n[6:]))

max函数将按字典顺序排序,但这会将'99'放在'100'之后(9>1)。因此,首先提取整数部分(n[6:]),转换为int,然后从中得到max。


另一个可能的解决方案是检查最后创建的文件。您可以通过命令os.stat(folder).st_ctime检查文件夹的状态:

1
2
import os
last =  max(os.listdir(), key=lambda x: os.stat(x).st_ctime)


您应该使用os.listdir()获取目录中的所有文件,然后使用max()获取后缀号最高的文件,最后使用os.path.join()将文件名与目录名合并为完整路径名。

1
2
import os
print(os.path.join('directory', max(os.listdir('directory'), key=lambda n: int(n.replace('subdir', '')))))