这个标题可能令人困惑,但基本上我希望能够做到以下几点:
import subprocess
subprocess.call(["python"])
subprocess.call(["import", "antigravity"])
subprocess.check_call(["print","\"This is so meta\" "])
subprocess.call(["exit()"])
预期的行为是打开 python 终端 session ,然后打开 xkcd comic 353,在命令行打印“这太元了”,最后退出 python 命令行。
基本上,我希望能够打开一个 python session ,并从我的 python 脚本在其中运行命令。我还希望能够检查我在脚本中运行的命令的输出。这可能吗?如果是这样,我需要使用什么库?子进程会这样做吗?
最佳答案
像这样的……
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
所以我们正在创建一个进程并告诉它输入将来自标准输入(就像有人打字一样)。然后我们写任何我们喜欢的东西并从标准输出读取响应(通常会打印到屏幕上的内容)
关于python - 在python命令行输入python命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22422727/