如何获得Python中的最新目录(How to get the newest directory i

2019-07-29 20:30发布

我正在寻找能找到其他目录中创建的我唯一的方法,最新的目录的方法是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