Сортировка имен файлов по номерам в Python: подробное руководство

При работе с именами файлов, содержащими числа, часто необходимо отсортировать их по смыслу. В этой статье блога мы рассмотрим различные методы Python для сортировки имен файлов, содержащих числа. Независимо от того, работаете ли вы с каталогом, полным файлов изображений, или с файлами журналов с отметками времени, эти методы помогут вам эффективно организовывать данные и манипулировать ими.

Метод 1: использование функции sorted()с настраиваемым ключом.
Один из самых простых способов сортировки имен файлов по номерам — использование функции sorted()в Python.. Предоставляя специальную функцию ключа, мы можем указать критерии сортировки на основе числовой части имен файлов.

import re
def sort_file_names(file_names):
    def extract_number(file_name):
        return int(re.search(r'\d+', file_name).group())
    sorted_names = sorted(file_names, key=extract_number)
    return sorted_names
file_names = ['file1.txt', 'file10.txt', 'file2.txt', 'file11.txt']
sorted_names = sort_file_names(file_names)
print(sorted_names)

Метод 2: использование библиотеки natsort
Библиотека natsortпредоставляет естественный алгоритм сортировки, специально разработанный для имен файлов. Он позволяет сортировать буквенно-цифровые строки со встроенными числами.

Чтобы установить natsort, вы можете использовать следующую команду:

pip install natsort

Вот пример сортировки имен файлов с использованием natsort:

from natsort import natsorted
file_names = ['file1.txt', 'file10.txt', 'file2.txt', 'file11.txt']
sorted_names = natsorted(file_names)
print(sorted_names)

Метод 3: Использование библиотеки humanfriendly
Библиотека humanfriendlyпредлагает множество удобных для пользователя функций, связанных с файлами, включая сортировку имен файлов. Он учитывает как числовые, так и буквенные части имен файлов, что делает его полезным выбором для сложных сценариев сортировки.

Чтобы установить humanfriendly, вы можете использовать следующую команду:

pip install humanfriendly

Вот пример сортировки имен файлов с использованием humanfriendly:

from humanfriendly import sort
file_names = ['file1.txt', 'file10.txt', 'file2.txt', 'file11.txt']
sorted_names = sort(file_names)
print(sorted_names)

В этой статье мы рассмотрели несколько методов сортировки имен файлов по номерам в Python. Мы рассмотрели использование функции sorted()с настраиваемым ключом, использование библиотеки natsortдля естественной сортировки и использование библиотеки humanfriendlyдля сложных сценариев сортировки. Используя эти методы, вы можете эффективно организовывать имена файлов и манипулировать ими, обеспечивая логический порядок в ваших данных. Выберите метод, соответствующий вашим конкретным требованиям, и воспользуйтесь преимуществами сортировки имен файлов.