При работе с именами файлов, содержащими числа, часто необходимо отсортировать их по смыслу. В этой статье блога мы рассмотрим различные методы 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для сложных сценариев сортировки. Используя эти методы, вы можете эффективно организовывать имена файлов и манипулировать ими, обеспечивая логический порядок в ваших данных. Выберите метод, соответствующий вашим конкретным требованиям, и воспользуйтесь преимуществами сортировки имен файлов.