如何获取文件夹中的最新文件

时间:2010-06-18 20:13:26

标签: jython

我已经编写了检索和文件的代码以及它创建的时间我只想创建最新的文件名。请建议我如何在jython中做到这一点。

 import os
    import glob
    import time
    folder='C:/xml'
    for folder in glob.glob(folder):
        for file in glob.glob(folder+'/*.xml'):
            stats=os.stat(file)
            print file ,time.ctime(stats[8])

再次感谢您的帮助

我已根据建议重新修改了代码,但我得不到正确的答案,请说明我在做什么错误。

import os
import glob
import time
folder='C:/xml'
for x in glob.glob(folder+"/*.xml"):
    (mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime)=os.stat(x)
    time1=time.ctime(mtime)
    for z in glob.glob(folder+"/*.xml"):
        (mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime)=os.stat(z)
        time2=time.ctime(mtime)
        if (time1>time2):
            new_file=x
            new_time=time1
        else:
            new_file=z
            new_time=time2

print new_file,new_time

1 个答案:

答案 0 :(得分:1)

使用两个变量来跟踪到目前为止找到的最新文件的名称和时间。每当您找到以后的文件时,请更新这两个变量。循环完成后,变量将包含最新文件的名称和时间。

我不太确定为什么你的示例代码中有两个嵌套循环;如果您要查找给定目录中的所有*.xml个文件,则只需要一个循环。

Pythonic解决方案可能类似于:

folder = "C:/xml"
print max((os.stat(x)[8], x) for x in glob.glob(folder+"/*.xml"))

如果您选择max()解决方案,请务必考虑目录中没有 *.xml文件的情况。