Установить порядок с помощью glob.glob - PullRequest
0 голосов
/ 07 января 2019

Я хочу установить свой собственный порядок, когда мой скрипт открывает файлы, но для открытия файлов по умолчанию используется glob.glob.

У меня есть следующие файлы: 'fish.txt', 'expo.txt', 'random.txt'.

Это небольшой пример всех моих файлов, я хочу установить свой порядок.

У меня написан нормальный способ открывать файлы с помощью glob.glob

#! /usr/bin/env python
import sys, os, glob
mylist = ['fish.txt','random.txt', 'expo.txt']
def sorter(item):
    for item in mylist:
        return item

for file in sorted(glob.glob('*.txt'), key = sorter):
     print(file)

Мой желаемый результат будет:

fish.txt

random.txt

expo.txt

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Вы можете использовать sorted(list) для сортировки имен файлов перед их повторением:

#!/usr/bin/env python
import sys, os, glob

def sorter(item):
    """Get an item from the list (one-by-one) and return a score for that item."""
    return item[1]

files = sorted(glob.glob('*.txt'), key=sorter)
for file in files:
     print(file)

Здесь сортируется по второй букве в имени файла. Измените функцию sorter() на порядок сортировки списка файлов.

Для сортировки по алфавиту вам не нужна часть key=sorter, потому что это стандартное поведение sorted() со списком строк. И тогда это станет:

files = sorted(glob.glob('*.txt'))
for file in files:
     print(file)
0 голосов
/ 07 января 2019

Вы можете сортировать записи из glob. Вы можете использовать сортировку по умолчанию или выбрать собственный алгоритм:

Простое использование:

#! /usr/bin/env python
import sys, os, glob

for file in sorted(glob.glob('*.txt')):
     print(file)

'sorted' manual: https://python -reference.readthedocs.io / о / последние / документы / функция / sorted.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...