在python命令行输入python命令

Der*_*den 6 python subprocess

这个标题可能令人困惑,但基本上我希望能够做到以下几点:

import subprocess

subprocess.call(["python"])
subprocess.call(["import", "antigravity"])
subprocess.check_call(["print","\"This is so meta\" "])
subprocess.call(["exit()"])
Run Code Online (Sandbox Code Playgroud)

预期的行为是它会打开一个 python 终端会话,然后打开 xkcd 漫画 353,在命令行中打印 'this is so meta',最后退出 python 命令行。

基本上,我希望能够打开一个 python 会话,并从我的 python 脚本中运行命令。我还希望能够检查我在脚本中运行的命令的输出。这可能吗?如果是这样,我需要使用什么库?子进程会这样做吗?

Bas*_*sic 3

像这样的东西...

import subprocess
proc = subprocess.Popen(
    'python',stdout=subprocess.PIPE,
    stdin=subprocess.PIPE)
proc.stdin.write('import antigravity\n')
proc.stdin.write('print "something"\n')
proc.stdin.close()
result = proc.stdout.read()
print result
Run Code Online (Sandbox Code Playgroud)

因此,我们正在创建一个进程并告诉它输入将来​​自标准输入(就像有人打字一样)。然后我们写任何我们喜欢的内容并从标准输出读取响应(通常会打印到屏幕上)