Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 10, 2018 15:15:05

dsubbs
От: Днепр, Украина
Зарегистрирован: 2018-01-10
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

try, if и к ним psutil

Начал работать над небольшим голосовым помощником, основу взял с инета. Хочу начать изучение питона именно с подобного рода проектов. Есть опыт в делфи.
А теперь вопрос: выделил строчки, после добавления которых вылетает с ошибкой “incosistent use of tabs” или что-то вроде этого.
только часть кода

 def work(self):
     print("Загружаюсь...")
     with self._microphone as source:
         self._recognizer.adjust_for_ambient_noise(source)
     try:
         while True:
             print("Кьюи активна, жду команд...")
             with self._microphone as source:
                 audio = self._recognizer.listen(source)
                 print("поняла...")
             try:
                 statement = self._recognizer.recognize_google(audio, language="ru_RU")
                 statement=statement.lower()
                  if((statement.find("калькулятор")!=-1) and (statement.find("открой")!=-1)):
                      self.osrun('calc')
                    
                  if((statement.find("калькулятор")!=-1) and (statement.find("закрой")!=-1)):
		      PROCNAME = "Calculator.exe"
                      for proc in psutil.process_iter():
                          if proc.name == PROCNAME:
                              proc.kill()
                          else self.say('Процесс уже закрыт!')	

Отредактировано dsubbs (Янв. 11, 2018 13:04:23)

Офлайн

#2 Янв. 10, 2018 15:32:54

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

try, if и к ним psutil

В качестве отступа используйте только 4 пробела, а не табуляцию. И да, этот вопрос достаточно легко гуглится - не обязательно было спрашивать это здесь.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Янв. 10, 2018 15:37:12

dsubbs
От: Днепр, Украина
Зарегистрирован: 2018-01-10
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

try, if и к ним psutil

Да, извиняюсь, ожидал, что проблема совсем не в табуляции. Но выделенный код все равно не работает, хотелось бы понять почему.

Офлайн

#4 Янв. 11, 2018 10:12:35

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

try, if и к ним psutil

dsubbs
не работает это ни о чем не говорит - что не работает? Ошибка какая то? Результат не верный? Это же принципиально разные вещи. В Питоне все хорошо с интроспекцией, поэтому полный traceback ошибки которую выдает питон игнорировать нельзя, если хотите разбираться с проблемами эффективно.
Ну и код на форумах и тп принято вставлять в специальные теги, что бы не терялось форматирование. Вы же видите что Ваш код превратился в кашу. И что мы там разбирать будем? правильный ответ - ничего, я даже не посмотрю на него. Ведь это бессмысленно, хотя бы пока отступы не будут верными.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Янв. 11, 2018 10:23:48

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2846
Репутация: +  186  -
Профиль   Отправить e-mail  

try, if и к ним psutil

> Да, извиняюсь, ожидал, что проблема совсем не в табуляции.

А проблема не с табуляцией, а стем что ты умудрился смешать её с пробелами. Что-бы этого не происходило включи подсветку табов/пробелов в редакторе.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#6 Янв. 11, 2018 12:32:11

dsubbs
От: Днепр, Украина
Зарегистрирован: 2018-01-10
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

try, if и к ним psutil

Такс, с более-менее тривиальными вещами питона разобрался.
Насчет закрытия: гуглил и пытался сделать по инструкции со стаковерфлоу, всё тщетно. В идеале, нужна функция, которая может закрывать приложение по его pid, но пока что достаточно, если оно будет закрывать системные приложения, открытые из-под самой программы (калькулятор, например)
Для этого пишу функцию:

 def pclose(self, procname):
    self.say('Закрываю ' + str(procname)) #say - функция озвучки заданной фразы
    for proc in psutil.process_iter():
        if proc.name == str(procname):
            proc.terminate()
Программа работает, все нормально, при вызове функции говорилка работает, ошибок не выдаёт. Только вот дочку не закрывает.

Отредактировано dsubbs (Янв. 11, 2018 12:39:29)

Офлайн

#7 Янв. 11, 2018 14:08:40

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2846
Репутация: +  186  -
Профиль   Отправить e-mail  

try, if и к ним psutil

> В идеале, нужна функция, которая может закрывать приложение по его pid

 import os
import signal
 
os.kill(int(PID), signal.SIGKILL)



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version