/
Saku
/
HomeWorkWorkingWithFiles
Обзор
Документация
Войти
/
Saku
/
HomeWorkWorkingWithFiles
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
merge/second.py
52 строки
2 KB
Danil Kornilov
Innitial commit
21 апр 2025, 17:20
21 апр 2025, 17:20
56bc002
Код
Авторство
О чём код?
import os from pathlib import Path def count_lines(filename): try: with open(filename, 'r', encoding='utf-8') as file: return sum(1 for line in file) except UnicodeDecodeError: with open(filename, 'r') as file: return sum(1 for line in file) def get_text_files(directory): return [f for f in os.listdir(directory) if f.endswith('.txt') and os.path.isfile(os.path.join(directory, f))] def merge_files(input_files, output_file): files_info = [] for filename in input_files: lines = count_lines(filename) files_info.append({'name': os.path.basename(filename), 'path': filename, 'lines': lines}) files_info.sort(key=lambda x: x['lines']) with open(output_file, 'w', encoding='utf-8') as outfile: for file_info in files_info: outfile.write(f"Файл: {file_info['name']}\n") outfile.write(f"Строк: {file_info['lines']}\n\n") with open(file_info['path'], 'r', encoding='utf-8') as infile: for line in infile: outfile.write(line) outfile.write('\n' '\n') def main(): script_dir = Path(__file__).parent.absolute() text_files = get_text_files(script_dir) if not text_files: print("В директории не найдено .txt файлов для объединения") return output_file = os.path.join(script_dir, "объединенный_результат.txt") try: merge_files([os.path.join(script_dir, f) for f in text_files], output_file) print(f"Файлы успешно объединены в: {output_file}") except Exception as e: print(f"Произошла ошибка: {str(e)}") if __name__ == "__main__": main()