如何解决以编程方式执行 Python shell
我需要以编程方式在 shell 上运行时运行 python 命令,它几乎是复制 REPL 但以编程方式,我尝试了下面的代码,该代码适用于第一行,但它不像 CLI 那样承载会话,请帮忙
import subprocess as s
import sys
res=s.run([sys.executable,"-c","a=5"])
s.run([sys.executable,"print(a)"])
错误:
Traceback (most recent call last):
File "<string>",line 1,in <module>
NameError: name 'a' is not defined
我收到错误,因为这 2 个命令正在 2 个不同的进程中执行,有什么方法可以在一个进程中运行但在不同的行中运行(类似于我们在 python 解释器(REPL)中所做的),我正在工作关于从一些外部文件捕获python命令并在shell上运行它们的要求,所以在它实际出现在外部文件中之前我不知道我将执行什么命令。
[![在此处输入图片描述][2]][2]
解决方法
您可以使用 Popen
的 subprocess
。 stdin
正在等待您的命令。
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)")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。