Ошибка при запуске 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'
Другие вопросы по тегам