получить имя самого последнего файла в linux — PYTHON

#python

#python

Вопрос:

Я хочу получить имя самого последнего файла из определенного каталога в python?

Я использовал это

 import os
import glob

def get_latest_file(path, *paths):
    """Returns the name of the latest (most recent) file
    of the joined path(s)"""
    fullpath = os.path.join(path, *paths)
    print fullpath
    list_of_files = glob.glob(fullpath)  
    if not list_of_files:               
        return None                     
    latest_file = max(list_of_files, key=os.path.getctime)
    _, filename = os.path.split(latest_file)
    return filename


if __name__ == "__main__":
    print get_latest_file('ocr', 'uploads', '*.png')
  

Источник

Но я хочу, чтобы код возвращал имя самого последнего файла без указания расширения файла. Итак, допустим, есть ли jpg, jpeg, png, gif

Я хочу, чтобы фрагмент охватывал их все.

Какие-либо входные данные?

Комментарии:

1. с помощью glob.glob вы также можете заменить суффикс окончания файла. вы пробовали: print get_latest_file(‘ocr’, ‘uploads’, ‘*’)

2. @hasan Это ответ. Вы хотите записать его более четко?

Ответ №1:

с помощью последней строки вы просто извлекаете файлы с расширением .png

 get_latest_file('ocr', 'uploads', '*.png')
  

если вы хотите получить все файлы, не зависящие от расширения, вам просто нужно удалить спецификацию расширения в коде для glob.glob(«). Это приведет к извлечению всех файлов в вашем каталоге. если вам все еще нужно какое-либо расширение, но не имеет значения, какое, вы также можете получить их с помощью glob.glob(. *), я думаю.

Ответ №2:

Если вас не волнует расширение простой ОС.подойдет пошаговая итерация. Вы можете расширить это для фильтрации расширений, если вам нужно.

 import os

all_files = {}
root = 'C:workspacewerkzeug-master'
for r, d, files in os.walk(root):
    for f in files:
        fp = os.path.join(root, r, f)
        all_files[os.path.getmtime(fp)] = fp
keys = all_files.keys()
keys.sort(reverse = True)
print all_files[keys[0]]