os.popen () устарела с Python 2.6. Теперь вы должны использовать модуль подпроцесс вместо: http://docs.python.org/2/library/subprocess.html#subprocess.Popen
import subprocess
command = "gcc -E myHeader.h" # the shell command
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=None, shell=True)
#Launch the shell command:
output = process.communicate()
print output[0]
В конструкторе Popen, если shell равен True , вы должны передать команду в виде строки, а не последовательности. В противном случае просто разбейте команду на список:
command = ["gcc", "-E", "myHeader.h"] # the shell command
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=None)
Если вам нужно прочитать также стандартную ошибку, в инициализации Popen вы можете установить stderr в subprocess.PIPE или subprocess.STDOUT
import subprocess
command = "gcc -E myHeader.h" # the shell command
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
#Launch the shell command:
output, error = process.communicate()