Как сортировать файлы в каталоге перед чтением?

Я работаю с программой, которая записывает вывод в файл csv на основе порядка чтения файлов из каталога. Однако с большим количеством файлов с окончаниями 1,2,3,4,5,6,7,8,9,10,11,12. Моя программа на самом деле читает файлы, я предполагаю, что в алфавитном порядке: 1,10,11,12 …., 2,20,21 ….. 99. Проблема в том, что другая программа предполагает, что упорядочение находится в числовом порядке и искажает результаты графика.

Фактически файл выглядит так: String.ext.ext2.1.txt, String.ext.ext2.2.txt и т. Д. …

Как я могу сделать это с помощью скрипта python?

4 Solutions collect form web for “Как сортировать файлы в каталоге перед чтением?”

 files = ['String.ext.ext2.1.txt', 'String.ext.ext2.12.txt', 'String.ext.ext2.2.txt'] # files: coming from os.listdir() sorted alphabetically, thus not numerically sorted_files = sorted(files, key=lambda x: int(x.split('.')[3])) # returns: ['String.ext.ext2.1.txt', 'String.ext.ext2.2.txt', 'String.ext.ext2.12.txt'] 

Сортируйте список файлов в программе. Не полагайтесь на вызовы операционной системы, чтобы предоставить файлы в правильном порядке, это зависит от используемой файловой системы.

  1. Используйте os.listdir для получения списка имен файлов.
  2. Сортируйте список, используя естественный порядок сортировки .
  3. Обработайте файлы в порядке отсортированного списка.

Вы можете использовать что-то вроде этого:

 fileNames = ['String.ext.ext2.2.txt', 'String.ext.ext2.20.txt', 'String.ext.ext2.1.txt', 'String.ext.ext2.10.txt', 'String.ext.ext2.11.txt', 'String.ext.ext2.0.txt',] fileNames = sorted(fileNames, key=lambda y: int(y.rsplit('.', 2)[1])) 
  • Строка печати Python в текстовый файл
  • Как записывать все в файл с помощью RotatingFileHandler с помощью файла logging.conf?
  • запись в тот же файл после чтения из файла
  • Написание одновременно, в несколько файлов, элементов списков разной длины
  • Как написать байты в файл в Python 3 без знания кодировки?
  • Напишите двоичное целое или строку в файл в python
  • Запись двоичного буфера в файл в python
  • В Python в чем разница между f.readlines () и list (f)
  • Python - лучший язык программирования в мире.