Python外壳程序化执行

Python外壳程序化执行,python,subprocess,command-line-interface,read-eval-print-loop,Python,Subprocess,Command Line Interface,Read Eval Print Loop,我需要在shell上以编程方式运行python命令,它几乎可以复制REPL,但在编程方式上,我尝试了以下代码,这些代码在第一行中有效,但它没有像CLI那样执行会话,请帮助 错误: Traceback (most recent call last): File "<string>", line 1, in <module> NameError: name 'a' is not defined 回溯(最近一次呼叫最后一次): 文件“”,第1行,在

我需要在shell上以编程方式运行python命令,它几乎可以复制REPL,但在编程方式上,我尝试了以下代码,这些代码在第一行中有效,但它没有像CLI那样执行会话,请帮助

错误:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
NameError: name 'a' is not defined
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
NameError:未定义名称“a”
我得到了错误,因为这两个命令是在两个不同的进程中执行的,有没有办法在一个进程中以不同的行运行(类似于我们在python解释器(REPL)中所做的),我正在处理从一些外部文件捕获python命令并在shell上运行它们的需求,所以我不知道我将执行什么命令,直到它实际出现在一个外部文件中


[![enter image description here][2][2]

您可以使用
子流程的
Popen
stdin
正在等待您的命令

将子流程导入为
导入系统
res=s.Popen(sys.executable,stdin=s.PIPE)
res.stdin.write(b“a=5\n”)
书写(b“打印(a)”)

您认为错误消息试图告诉您什么?变量不会在Python解释器的两次单独执行中保持不变。第一次执行的
a=5
与第二次执行无关,这就是为什么会出现
namererror
。我不完全清楚你想做什么,所以我没有任何特别的建议给你。@larsks谢谢你的回复,有没有办法在一次执行中运行,但在不同的行中运行(类似于我们在python解释器(REPL)中所做的),我正在研究从一些外部文件中捕获python命令并在shell上运行这些命令的需求,因此,在命令实际出现在外部文件中之前,我不知道将执行什么命令。我现在给您的最好建议是更新问题,以清楚地演示您试图完成的任务。人们不一定会看到你的评论,即使有了你的评论,我也不完全确定你想做什么。谢谢你的回复,但它没有任何价值。好心的help@NewDev我已经测试过,它正在打印输出。你是如何运行这个文件的?我是从pyCharm运行的,我附上了问题的截图,请看一下,请在命令行上运行
python测试_Selenium.py
Awesome,感谢您的帮助
Traceback (most recent call last):
  File "<string>", line 1, in <module>
NameError: name 'a' is not defined