繁体   English   中英

如何在Python中获取最新目录

[英]How to get the newest directory in Python

我正在寻找一种方法,可以找到在另一个目录中创建的最新目录我唯一的方法是os.listdir()但它显示了所有文件和目录。 如何仅列出目录以及如何访问目录的属性以找出最新创建的目录? 谢谢

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(ELEMENT)反向排序dirs中的所有elemens。 结果又是一个列表。 当然可以使用[index]语法和切片来访问它

这是我写的一个小函数,用于返回最新目录的名称:

#!/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')

以下Python代码应该可以解决您的问题。

import os
import glob
for dir in glob.glob('*'):
  if os.path.isdir(dir):
    print dir,":",os.path.getctime(dir)

查看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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM