Ошибка при запуске call() в подпроцессе Python
Я пытаюсь бежать:
try:
with open(subprocess.PIPE, 'w') as pipe:
call(["/usr/sbin/atms","-k"], stdout=pipe, stderr=pipe)
call(["/usr/sbin/atms","/usr/sbin/atms.conf"],stdout=pipe,stder=pipe)
except Exception, e:
print e
Теперь я получаю
coercing to Unicode: need string or buffer, int found
Что это значит?
Спасибо
1 ответ
Решение
open()
используется для файлов и ожидает имя файла, а не канал.
Вместо .call()
Вы могли бы использовать Popen
:
>>> p = subprocess.Popen(['python', '-c', 'print "test"'], stdout=subprocess.PIPE)
>>> p.stdout.read()
'test\r\n'