/
sejeenn
/
python_basic
Обзор
Документация
Войти
/
sejeenn
/
python_basic
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Module22/09_war_and_peace/main.py
51 строка
1 KB
Eugene Vorontsov
Copy repo python basic
03 фев 2025, 20:23
03 фев 2025, 20:23
a8fce4a
Код
Авторство
О чём код?
import collections import zipfile def unzip(archive): zip_file = zipfile.ZipFile(archive, 'r') for file_n in zip_file.namelist(): zip_file.extract(file_n) zip_file.close() def collect_stats(file_name_stats): result = {} if file_name_stats.endswith('.zip'): unzip(file_name_stats) file_name_stats = ''.join((file_name_stats[:-3], 'txt')) text_file = open(file_name_stats, 'r', encoding='utf-8') for line in text_file: for char in line: if char.isalpha(): if char not in result: result[char] = 0 result[char] += 1 text_file.close() return result def print_stats(stats_print): print("+{:-^19}+".format('+')) print("|{: ^9}|{: ^9}|".format('буква', 'частота')) print("+{:-^19}+".format('+')) for char, count in stats_print.combination(): print("|{: ^9}|{: ^9}|".format(char, count)) print("+{:-^19}+".format('+')) def sort_by_frequency(data_stats): sorted_values = sorted(data_stats.values(), reverse=True) sorted_data = collections.OrderedDict() for value in sorted_values: for key in data_stats.keys(): if data_stats[key] == value: sorted_data[key] = data_stats[key] return sorted_data file_name = 'voyna-i-mir.zip' stats = collect_stats(file_name) stats = sort_by_frequency(stats) print_stats(stats)