python - 在python命令行输入python命令

标签 python subprocess

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

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/

相关文章:

python - 子进程:PyDev 控制台与 cmd.exe

python - 返回句子中某个字符串的索引号

python - 线性回归预测与训练数据不匹配

python - 如何在 Python 中查找开放阅读框

python - 如何在运行时安装和导入 Python 模块?

python - 如何将中间量的数据传递给子进程?

python - 如何在 Pyspark 中按列连接/附加多个 Spark 数据帧?

python - sqlite3.警告: You can only execute one statement at a time

python - 在 Python 中捕获 netcat shell 命令输出

node.js - Nodejs 子进程以什么 Linux 用户身份运行?