windows - Send kommandoer til den åbne python terminal

Indlæg af Hanne Mølgaard Plasc

Problem



Målet er at åbne python-terminalen med forudgående udførelse af nogle kommandoer. I det virkelige liv laster det nogle moduler og definerer nogle variabler, men her er en forenklet version:


from subprocess import Popen, CREATE\_NEW\_CONSOLE

r=Popen("python",creationflags=CREATE\_NEW\_CONSOLE)
r.communicate(input=b"print(2+2)")


CREATE\_NEW\_CONSOLE bruges, fordi ellers er terminal vinduet ikke vist (jeg kører koden fra IDE). Koden ovenfor åbner et python terminal vindue, men input kommer ikke derhen. Forsøger nogle variationer stopper vinduet fra at dukke op, som:


r=Popen(["python","print(2+2)"],creationflags=CREATE\_NEW\_CONSOLE)


Eller


r=Popen("python",creationflags=CREATE\_NEW\_CONSOLE, stdin=PIPE)
r.communicate(input=b"print(2+2)")


Så hvad kan man gøre for at løse problemet?

Bedste reference


Dette er hvad miljøvariablen PYTHONSTARTUP er for ...


se: https://docs.python.org/2/using/cmdline.html#envvar-PYTHONSTARTUP[8]


Indtast billedbeskrivelse her [9]


En anden mulighed ville være at bruge -c -i switches


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