Открыть файл .txt при помощи скрипта Python с неизвестным именем, но известным расширением

Рейтинг: 2Ответов: 1Опубликовано: 08.06.2023

Начал изучать Python, пытаюсь написать скрипт, который будет открывать только-что созданный файл (.тхт). Проблема в том, что имя файла всегда уникальное. Файлы в папке создаются другой программой, результат выполненной работы, в данной папке файлы хранятся постоянно, нужно открывать именно последний созданный файл. Подскажите пожалуйста. Спасибо.

Ответы

▲ 2

NB Это только одно из возможных решений.

os.scandir возвращает файлы и директории по указанному пути. Они фильтруются по расширению. Из всех выбирается файл c самым большим временем изменения (самый последний):

import os
import sys


def get_files(path, ext):
    for e in os.scandir(path=path):
        if e.is_file() and e.name.endswith('.' + ext):
            yield e


def get_last_file(path, ext):
    return max(
        get_files(path, ext),
        key=lambda e: e.stat().st_mtime,
        default=None
    )


def main():
    path = sys.argv[1]
    ext = sys.argv[2]
    lf = get_last_file(path, ext)
    if lf is None:
        print('N/A')
    else:
        print(lf.name)


main()
$ python latest-file.py . txt
temp1.txt

$ python latest-file.py . py
latest-file.py

P.S. Ещё есть glob.glob, os.walk, os.listdir.