как получить последний файл в папке - PullRequest
2 голосов
/ 19 июня 2010

я написал код для извлечения и файл и время его создания я просто хочу получить последнее имя созданного файла. Пожалуйста, предложите, как я могу сделать это в 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 Ответ

1 голос
/ 19 июня 2010

Используйте две переменные, чтобы отслеживать имя и время последнего найденного файла. Всякий раз, когда вы найдете файл позже , обновите обе переменные. Когда ваш цикл будет завершен, переменные будут содержать имя и время последнего файла.

Я не совсем уверен, почему в вашем примере кода есть два вложенных цикла; если вы ищете все *.xml файлы в данном каталоге, вам нужен только один цикл.

Pythonic решение может быть что-то вроде:

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

Если вы выбираете решение max(), обязательно рассмотрите случай, когда в вашем каталоге есть нет *.xml файлов.

...