Python查找最新创建的文件

时间:2013-08-29 20:57:04

标签: python file directory

我正在尝试在目录中找到最近创建的文件的名称:

    try:
        #print "creating path"
        os.makedirs(self.path)
        self.dictName = "0"
    except OSError as exception:
        if exception.errno != errno.EEXIST:
            raise
        listOfFiles = os.listdir(self.path)
        listOfFiles = filter(lambda x: not os.path.isdir(x), listOfFiles)
        print "creating newestDict"
        newestDict = max(listOfFiles, key=lambda x: os.stat(x).st_mtime) ------<
        print "setting self.name"

箭头指向代码导致程序崩溃的位置。打印listOfFiles返回非空列表。这是使用第三方python程序,它有自己的解释器。我有什么想法我做错了吗?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用os.path.isfile()函数和理解列表来阐明列出文件的过程,但这取决于您。如果您查看注释中的相关链接,您将看到os.path.getctime() function,它允许您获取Windows系统中文件的创建时间以及Unix上次修改的时间类似系统(如stat()系统调用st_mtime属性):

from os import listdir
from os.path import isfile, join, getctime

listOfFiles = [f for f in listdir(self.path) if isfile(join(self.path,f))]
newestDict = max(listOfFiles, key=lambda x: os.path.getctime(x))

但到目前为止,您的代码看起来是正确的。如果您提供解释器抛出的错误或完整的代码,我们可能会更有帮助。