1# coding: utf8 2import sys # для разбора аргументов 3import os # для очистки экрана 4import subprocess # для функции RHVoice_say 5 6# функция для произношения с использованием Speech Dispatcher 7def RHVoice_say(text): 8 # -e, --pipe-mode (Pipe from stdin to stdout plus Speech Dispatcher) 9 # -w, --wait (Wait till the message is spoken or discarded) 10 p = subprocess.Popen(['spd-say', "-e", "-w"], stdin=subprocess.PIPE) 11 p.communicate(text.encode('utf-8')) 12 13 14# переменные 15filename = sys.argv[1] 16good = '' 17bad = '' 18 19# открываем файл 20try: 21 f = open(filename, 'r') # подгружаем файл для чтения 22 line = f.readline() # читаем первую строку из файла 23except: 24 print('Ошибка открытия файла') 25 exit() # завершаем программу 26 27# перебираем весь список 28while line: 29 30 os.system('clear') # чистим экран 31 print('Проверка набора фраз из:\n'+filename+'\n') 32 33 RHVoice_say(line) # произносим строку 34 35 os.system('clear') # т.к. RHVoice_say() выводит текст, то перерисуем вывод 36 print('Проверка набора фраз из:\n'+filename+'\n') 37 print('Фраза: ' + line) 38 39 print('[1]-хорошо, [2]-плохо, [3]-повторить, [4]-выйти') 40 res = input('Решение: ') # ждём реакцию 41 42 if res=='1': good += line # добавим строки в нужные списки 43 if res=='2': bad += line 44 if res=='4': break # выходим из цикла 45 46 if (res=='1' or res=='2'): line = f.readline() # читаем следующую строку, если не нужно повторить 47 48 49print() # выведем отступ 50 51# если вышли раньше, чем прочитали весь файл, то запишем в файл непроверенные строки 52if line: 53 i=0 54 try: 55 f2 = open(filename + '.rest', 'w+') # создаём файл для записи 56 while line: 57 f2.write(line) 58 line = f.readline() 59 i+=1 60 print('Записан файл с остатками: '+ os.path.basename(filename) + '.rest'+ '\nЗаписано: ' + str(i) + ' фраз(а)\n') 61 f2.close() 62 except: 63 print('Ошибка создания файла для записи остатков') 64 65f.close() # закрываем основной файл, т.к. весь прочитали и он нам больше не нужен 66 67# запишем в файлы результаты нашего труда 68if good!='': 69 try: 70 f3 = open(filename + '.good', 'w+') 71 f3.write(good) 72 f3.close() 73 print('Записан файл с хорошими фразами: '+ os.path.basename(filename) + '.good' + '\nЗаписано: ' + str(good.count('\n')) + ' фраз(а)\n') 74 except: 75 print('Ошибка создания файла для записи хороших фраз') 76 77if bad!='': 78 try: 79 f4 = open(filename + '.bad', 'w+') 80 f4.write(bad) 81 f4.close() 82 print('Записан файл с плохими фразами: '+ os.path.basename(filename) + '.bad' + '\nЗаписано: ' + str(bad.count('\n')) + ' фраз(а)\n') 83 except: 84 print('Ошибка создания файла для записи плохих фраз') 85 86