Уведомления

Группа в Telegram: @pythonsu

#1 Июль 8, 2011 18:47:28

Manul
От:
Зарегистрирован: 2010-09-26
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнение сторонних программ в коде Python

Поразбирался с subprocess. Результатов тоже не принесло. Вот код:

import subprocess as s

p = s.Popen(["sudo /usr/sbin/pm-suspend"], shell=True, stdin=s.PIPE, close_fds=True)
p.communicate(input = "mypass")
Судо опять все блочит и не пускает поток ввода.
Может я чего-то серьезно не догоняю?



Отредактировано (Июль 8, 2011 18:48:26)

Офлайн

#2 Июль 8, 2011 19:45:34

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Выполнение сторонних программ в коде Python

пароль вводится? возможно в конце пароля нужен “ентер”

p.communicate(input = "mypass\n")

Офлайн

#3 Июль 8, 2011 20:34:26

Manul
От:
Зарегистрирован: 2010-09-26
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнение сторонних программ в коде Python

Нет… Не вводится. Символ перевода строки не помог.



Офлайн

#4 Июль 8, 2011 20:51:24

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Выполнение сторонних программ в коде Python

Manul
Нет… Не вводится. Символ перевода строки не помог.
Попробуйте через pexpect (пример выше), у меня работало.

Офлайн

#5 Июль 8, 2011 21:17:28

Manul
От:
Зарегистрирован: 2010-09-26
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнение сторонних программ в коде Python

Сейчас, к сожалению нет возможности скачивать модули - gprs инет. А может быть попробовать с потоками и subprocess'ами поколдовать? Может что и выйдет из этого?



Офлайн

#6 Июль 9, 2011 21:42:15

Manul
От:
Зарегистрирован: 2010-09-26
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнение сторонних программ в коде Python

Алилуя! Он живой. Pexpect помог. Спасибо Вам, o7412369815963!



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version