Различное расположение файлов на сервере Ubuntu
У меня проблема с извлечением последнего файла из некоторых файлов с такими именами файлов:
On Windows localhost:
На сервере Ubuntu:
Все упорядочено по годам и кварталам. Мне нужен последний файл для одного из моих скриптов, и я получаю к нему доступ, выполняя:
filenames = os.listdir(edgar_path)
last_file = filenames[-1]
Это работает нормально на моем localhost на моем ПК с Windows, но это работает неожиданно на сервере Ubuntu.
Когда я пытаюсь вывести последний полученный файл, на сервере он другой.
logger.debug('last_file')
logger.debug(last_file)
Windows localhost результат:
Результат работы сервера Ubuntu:
Это тот же скрипт, с теми же файлами, но по какой-то причине он возвращает неправильный файл в скрипте сервера.
Есть идеи, что может вызвать это? Любая помощь будет принята с благодарностью.
os.listdir()
возвращает список в произвольном порядке, что не гарантирует, что последний файл всегда будет одним и тем же. Если вы хотите, чтобы список был упорядочен на обеих платформах, вам нужно отсортировать его самостоятельно, вызвав sort()
или sorted()
на списке, возвращенном os.listdir()
.
Небольшой пример с использованием вашего кода:
filenames = os.listdir(edgar_path)
filenames.sort()
last_file = filenames[-1]