сортировка строк стихов

сохраняем строки всех стихов в папке


import os

folder_path = "стихи"
output_file = "строки.txt"

with open(output_file, "w", encoding="utf-8") as outfile:
    for filename in os.listdir(folder_path):
        if filename.endswith(".txt"):
            with open(os.path.join(folder_path, filename), "r", encoding="utf-8") as infile:
                for line in infile:
                if line.strip():  # пропускаем пустые строки
                outfile.write(line)





**


проверка  кодировки файлов в папке


import os
import chardet

folder_path = "стихи"

for filename in os.listdir(folder_path):
    if filename.endswith(".txt"):
        with open(os.path.join(folder_path, filename), "rb") as file:
            result = chardet.detect(file.read())
            if result["encoding"] != "utf-8":
                print(f"Файл '{filename}' имеет кодировку '{result['encoding']}'.")






**



сортировка списка фраз стихов по окончаниям строк


import re

# Чтение строк из файла
with open('строки ст.txt', 'r', encoding='utf-8') as file:
    lines = file.readlines()

# Удаляем пробелы и переводы строк, а также убираем повторы
unique_lines = set(line.strip() for line in lines)

# Убираем знаки пунктуации и тире в конце строк
cleaned_lines = [re.sub(r'[\W_]+$', '', line) for line in unique_lines]

# Упорядочиваем строки по двум последним буквам
sorted_lines = sorted(cleaned_lines, key=lambda x: x[-2:] if len(x) >= 2 else x)

# Записываем результат в новый файл
with open('сорт.txt', 'w', encoding='utf-8') as output_file:
    for line in sorted_lines:
        output_file.write(line + '\n')


Рецензии