2010-06-18 87 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

相關問題