将命令发送到打开的python终端

时间:2017-01-31 20:31:52

标签: python windows python-3.x terminal

目标是通过预执行某些命令来打开python终端。在现实生活中,它加载了一些模块并定义了一些变量,但这里有一个简化版本:

from subprocess import Popen, CREATE_NEW_CONSOLE

r=Popen("python",creationflags=CREATE_NEW_CONSOLE)
r.communicate(input=b"print(2+2)")

使用CREATE_NEW_CONSOLE,因为否则终端窗口不会出现(我从IDE运行代码)。上面的代码打开了一个python终端窗口,但输入并没有到达那里。尝试某些变化会阻止窗口出现,例如:

r=Popen(["python","print(2+2)"],creationflags=CREATE_NEW_CONSOLE)

r=Popen("python",creationflags=CREATE_NEW_CONSOLE, stdin=PIPE)
r.communicate(input=b"print(2+2)")

那么可以做些什么来解决这个问题呢?

1 个答案:

答案 0 :(得分:2)

这是环境变量PYTHONSTARTUP的用途......

请参阅:https://docs.python.org/2/using/cmdline.html#envvar-PYTHONSTARTUP

enter image description here

另一种选择是使用-c -i开关

C:\>python -i -c "x = 2+2;y=3+3"
>>> x
4
>>> y
6
>>>