Мне нужно запустить программу и использовать вывод ее консоли в сценарии python с помощью модуля подпроцесса. Вот мой код:
#!/usr/bin/python
# coding=utf-8
from __future__ import unicode_literals
import sys
from subprocess import Popen, PIPE, STDOUT
# Check the code by running linux list command
p = Popen(["ls", "-l"], stdout=PIPE, bufsize=1)
with p.stdout:
for line in iter(p.stdout.readline, b''):
print line
p.wait() # wait for the subprocess to exit
# Run the C hello world program
p = Popen([sys.executable, "hello_C"], stdout=PIPE, bufsize=1)
with p.stdout:
for line in iter(p.stdout.readline, b''):
print line
p.wait() # wait for the subprocess to exite
Вывод "ls -l" отображается в консоли Python без проблем. Я предполагаю, что код, связанный с подпроцессом и чтением стандартного вывода является правильным. Но когда я пытаюсь запустить программу hello_ C, которая является просто программой hello world, она выдает следующую ошибку:
File "hello_C", line 1
SyntaxError: Non-ASCII character '\xff' in file hello_C on line 2, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details