/
gelios
/
File
Обзор
Документация
Войти
/
gelios
/
File
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
File_1_2_3.py
32 строки
1 KB
D
Solving problem 3
18 авг 2025, 00:08
18 авг 2025, 00:08
8a09a9f
Код
Авторство
О чём код?
from typing import List, Tuple def get_file_info(filenames: List[str]) -> List[Tuple[str, List[str]]]: """Считывает содержимое файлов и возвращает список кортежей (имя файла, список строк).""" files_data = [] for filename in filenames: with open(filename, 'r') as f: lines = f.read().splitlines() files_data.append((filename, lines)) return files_data def sort_files_by_lines(files_data: List[Tuple[str, List[str]]]) -> List[Tuple[str, List[str]]]: """Сортирует файлы по количеству строк в них.""" return sorted(files_data, key=lambda x: len(x[1])) def write_merged_file(files_data: List[Tuple[str, List[str]]], output_filename: str) -> None: """Записывает объединенный файл с заголовками (имя файла + количество строк).""" with open(output_filename, 'w') as f: for filename, lines in files_data: f.write(f"{filename}\n{len(lines)}\n") for line in lines: f.write(f"{line}\n") def main(): filenames = ['1.txt', '2.txt', '3.txt'] files_data = get_file_info(filenames) sorted_files = sort_files_by_lines(files_data) write_merged_file(sorted_files, 'merged.txt') print("Файлы успешно объединены в 'merged.txt'") if __name__ == '__main__': main()