Различное расположение файлов на сервере Ubuntu

У меня проблема с извлечением последнего файла из некоторых файлов с такими именами файлов:

On Windows localhost:

enter image description here

На сервере Ubuntu:

enter image description here

Все упорядочено по годам и кварталам. Мне нужен последний файл для одного из моих скриптов, и я получаю к нему доступ, выполняя:

filenames = os.listdir(edgar_path)
last_file = filenames[-1]

Это работает нормально на моем localhost на моем ПК с Windows, но это работает неожиданно на сервере Ubuntu.

Когда я пытаюсь вывести последний полученный файл, на сервере он другой.

logger.debug('last_file')
logger.debug(last_file)

Windows localhost результат:

enter image description here

Результат работы сервера Ubuntu:

enter image description here

Это тот же скрипт, с теми же файлами, но по какой-то причине он возвращает неправильный файл в скрипте сервера.

Есть идеи, что может вызвать это? Любая помощь будет принята с благодарностью.

os.listdir() возвращает список в произвольном порядке, что не гарантирует, что последний файл всегда будет одним и тем же. Если вы хотите, чтобы список был упорядочен на обеих платформах, вам нужно отсортировать его самостоятельно, вызвав sort() или sorted() на списке, возвращенном os.listdir().

Небольшой пример с использованием вашего кода:

filenames = os.listdir(edgar_path)
filenames.sort()
last_file = filenames[-1]
Вернуться на верх