Python shell 以编程方式执行

Python shell execution programatically

我需要以编程方式在 shell 上的 运行 处执行 运行 python 命令,它几乎复制了 REPL 但以编程方式,我尝试了以下适用于第一行,但它没有像 CLI 那样进行会话,请帮助

import subprocess as s
import sys
res=s.run([sys.executable, "-c", "a=5"])
s.run([sys.executable, "-c", "print(a)"])

错误:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
NameError: name 'a' is not defined

我收到错误消息,因为这 2 个命令正在 2 个不同的进程中执行,有没有办法在一个进程中但在不同的行中 运行(类似于我们在 [=25= 中所做的] 解释器(REPL)),我正在处理从一些外部文件捕获 python 命令并在 shell 上捕获 运行 它们的要求,所以我不知道我会用什么命令执行直到它实际出现在外部文件中。

[![在此处输入图片描述][2]][2]

您可以使用 Popensubprocessstdin 正在等待您的命令。

import subprocess as s
import sys
res=s.Popen(sys.executable, stdin=s.PIPE)
res.stdin.write(b"a=5\n")
res.stdin.write(b"print(a)")