2010-06-18 62 views
2

我已经编写了代码来检索和文件和时间它创建的,我只是想获得最新的文件名创建。请建议我如何在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

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

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

一个Python的解决方案可能是这样的:

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

如果选择max()解决方案,一定要考虑那里有没有*.xml文件目录中的情况。

+0

我已经重新编码的代码,但我没有得到正确的答案,任何建议。 感谢您的帮助。 – kdev 2010-06-19 00:01:04

+0

@kdev:同样,为什么你有两个嵌套循环?一个应该就足够了。尝试用一个循环编写代码,看看是否有帮助。 – 2010-06-19 06:18:12

相关问题