TGViewer
About Python [ru] About Python [ru] @python_tesst · 6.42K subscribers
Post #1369 1.15K
👩‍💻 Задачка по Python

Создайте Python-приложение, которое принимает путь к текстовому файлу в качестве аргумента командной строки и подсчитывает частоту появления каждого слова в файле. Программа должна выводить результаты в консоль и сохранять их в файл word_count.json.

Программа должна уметь выводить статистику по папке в консоль и сохранять её в файл.

➡️ Пример:

• python app.py report file.txt — создает файл word_count.json с частотой появления каждого слова в файле.
• python app.py print file.txt — выводит статистику по словам в консоль.

Решение задачи ⬇️

import sys
import json
from collections import Counter
import os

def count_words(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
text =
file.read().lower()
words = text.split()
return Counter(words)

def save_report(file_path, word_count):
report_path = os.path.splitext(file_path)[0] + '_word_count.json'
with open(report_path, 'w', encoding='utf-8') as report_file:
json.dump(word_count, report_file, ensure_ascii=False, indent=4)
print(f'Отчет сохранен в {report_path}')

def print_report(word_count):
for word, count in word_count.items():
print(f'{word}: {count}')

if __name__ == '__main__':
if len(sys.argv) < 3:
print('Используйте: python
app.py <report|print> <путь к файлу>')
sys.exit(1)

action = sys.argv[1]
file_path = sys.argv[2]

if not os.path.isfile(file_path):
print(f'Файл {file_path} не найден.')
sys.exit(1)

word_count = count_words(file_path)

if action == 'report':
save_report(file_path, word_count)
elif action == 'print':
print_report(word_count)
else:
print('Неизвестное действие. Используйте "report" или "print".')
More from @python_tesst
  1. Oct 10, 2026Python 3.15 на проде: ленивые импорты, frozendict, UTF-8 из коробки и JIT, который наконец…
  2. Oct 9, 2026Haiku 5.5 — коротко по делу В среднем один запуск выходит на 75% дешевле, чем у Haiku 4.5.…
  3. Oct 8, 202650 промптов для ChatGPT, после которых толстенный PDF или статья вовсе не обязательно чита…
  4. Oct 8, 2026Сидишь такой, готовишь стартап на 500M$+, а лимиты сдохли уже на втором запросе. 👉 About…
  5. Oct 7, 2026Python в Cloudflare Workers: всё, теперь по-взрослому — GA Cloudflare перестала держать Py…
  6. Oct 7, 2026PyCoder’s Weekly #755 — 6 октября 2026 Python 3.15.0rc3: в новых фичах lazy loading что-то…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →