-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
93 lines (78 loc) · 3.39 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import os
import sys
from sys import stdin, stdout
from file_spellchecker import FileSpellchecker
from interactive_spellchecker import InteractiveSpellchecker
from pathlib import Path
def clear():
os.system('cls' if os.name == 'nt' else 'clear')
def print_options(options):
if options:
stdout.write(f'Найдено ошибок: {len(options)} ' + '\n')
for word in options:
stdout.write(f'Ошибка в слове "{word}".'
f'Возможно Вы имели в виду:' + '\n')
for option in options[word]:
stdout.write(f' {option}' + '\n')
stdout.write("Ошибок нет. Все корректно." + '\n')
return
def print_mode_selection():
stdout.write('Нажмите 1, а затем Enter, '
'если хотите проверить слова в файле' + '\n')
stdout.write('Нажмите 2, а затем Enter, '
'если хотите просто вводить слова' + '\n')
stdout.write('Введите exit, а затем нажмите Enter, '
'если хотите завершить работу программы' + '\n')
def execute_command(command):
while command != '1' and command != '2' and command != 'exit':
stdout.write('\r'
+ 'Неизвестная команда, попробуйте еще раз'
+ '\n')
command = input().rstrip('\n')
if command == '1':
stdout.write('Введите название файла:' + '\n')
file = input().rstrip('\n')
path = Path(file)
stdout.write('\r' + "Идет проверка...")
spellchecker = FileSpellchecker(path)
options = spellchecker.get_options()
stdout.write('\r')
print_options(options)
elif command == '2':
stdout.write('Введите текст:' + '\n')
text = input().rstrip('\n').lower()
stdout.write('\r' + "Идет проверка...")
spellchecker = InteractiveSpellchecker(text)
options = spellchecker.get_options()
stdout.write('\r')
print_options(options)
elif command == 'exit':
exit(0)
def execute_menu_command(menu_command):
while menu_command != 'да' and menu_command != 'нет':
sys.stdout.write('\r'
+ 'Неизвестная команда, попробуйте еще раз'
+ '\n')
menu_command = input().rstrip('\n')
if menu_command == 'да':
clear()
print_mode_selection()
elif menu_command == 'нет':
exit(0)
def main():
stdout.write('Добро пожаловать в SpellChecker!' + '\n')
print_mode_selection()
for command in stdin:
execute_command(command.rstrip('\n'))
sys.stdout.write('Выйти в главное меню?'
+ '\n'
+ 'Введите "да",'
'если хотите'
+ '\n'
+ 'Введите "нет",'
'если хотите завершить работу программы'
+ '\n')
menu_command = input().rstrip('\n')
execute_menu_command(menu_command)
if __name__ == "__main__":
main()