我正在寻找能找到其他目录中创建的我唯一的方法,最新的目录的方法是os.listdir()
但它显示所有文件和目录内。 我怎么能只列出目录,我如何可以访问该目录的属性,了解最新的创造? 谢谢
Answer 1:
import os
dirs = [d for d in os.listdir('.') if os.path.isdir(d)]
sorted(dirs, key=lambda x: os.path.getctime(x), reverse=True)[:1]
更新:
也许一些更多的解释:
[d for d in os.listdir('.') if os.path.isdir(d)]
是一个列表理解。 你可以阅读更多关于他们在这里
该代码不一样
dirs = []
for d in os.listdir('.'):
if os.path.isdir(d):
dirs.append(d)
会做,但列表理解被认为是更具可读性。
sorted()
是一个内置的功能。 一些例子是这里
该代码我通过反向os.path.getctime(元)表现出各种显示目录内的所有elemens。 结果又是一个列表。 这当然可以通过被访问[index]
的语法和切片
Answer 2:
这里有一个小功能,我写回的最新目录的名称:
#!/usr/bin/env python
import os
import glob
import operator
def findNewestDir(directory):
os.chdir(directory)
dirs = {}
for dir in glob.glob('*'):
if os.path.isdir(dir):
dirs[dir] = os.path.getctime(dir)
lister = sorted(dirs.iteritems(), key=operator.itemgetter(1))
return lister[-1][0]
print "The newest directory is", findNewestDir('/Users/YOURUSERNAME/Sites')
Answer 3:
下面的Python代码应该解决您的问题。
import os
import glob
for dir in glob.glob('*'):
if os.path.isdir(dir):
print dir,":",os.path.getctime(dir)
Answer 4:
退房os.walk
和一个简单的方法来获得目录中的文档的例子。
root, dirs, files = os.walk('/your/path').next()
然后检查os.path.getctime
这取决于你的操作系统可能会创建或修改时间。 如果你不熟悉它,你也将要在阅读了os.path.join
。
os.path中。 getctime(path)返回系统的的ctime其中,在某些系统上(如Unix的)是最后改变的时间,以及对他人(如Windows),是创建时间路径。
max((os.path.getctime(os.path.join(root, f)), f) for f in dirs)
文章来源: How to get the newest directory in Python