Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从python脚本打开python控制台后如何传递python命令?_Python_Windows_Nested_Subprocess_Os.system - Fatal编程技术网

从python脚本打开python控制台后如何传递python命令?

从python脚本打开python控制台后如何传递python命令?,python,windows,nested,subprocess,os.system,Python,Windows,Nested,Subprocess,Os.system,这里我需要的是从python脚本打开python控制台,然后将命令传递给该python控制台 我需要自动化这个过程。目前,我使用os.system和SUBSPROCESS打开python控制台,但在那之后,我完全无法将print(“Test”)传递到python控制台 下面是我正在编写的示例代码 import os os.system("python") #os.system("print('Hello World')) # or import subpro

这里我需要的是从python脚本打开python控制台,然后将命令传递给该python控制台

我需要自动化这个过程。目前,我使用os.system和SUBSPROCESS打开python控制台,但在那之后,我完全无法将
print(“Test”)
传递到python控制台

下面是我正在编写的示例代码

import os
os.system("python")
#os.system("print('Hello World'))

# or 

import subprocess
subprocess.run("python", shell = True)
请帮助我了解如何传递嵌套命令。
谢谢

我从另一个线程中找到了一个非常有用的答案,并应用到我的用例中

from subprocess import run, PIPE

p = run(['python'], stdout=PIPE,
        input='print("Test")\nprint("Test1")\nimport os\nprint(os.getcwd())', encoding='ascii')
print(p.returncode)
# -> 0
print(p.stdout)
它启动python shell,然后执行以下命令,命令之间用
\n
分隔

  • 打印测试
  • 打印测试1
  • 导入操作系统
  • 获取当前工作目录
  • 参考:

    为什么您需要启动交互式控制台并以自动方式键入命令,而不是只执行Python脚本?这样我就可以使用另一个shell,如vivado,它可以自动运行TCL脚本。比如从python中打开vivado shell,然后将TCL命令传递给vivado shell执行。那么您想启动另一个python会话并向该会话发送命令以启动vivado,然后向该会话发送命令吗?为什么不直接启动Vivado?为什么不编写Python脚本来发送Tcl命令而不是编写Tcl脚本?我必须执行100个文件,手动执行会很麻烦,所以我想看看这种自动化的可能性。在本例中,我将从python脚本打开vivado控制台,并仅通过python传递TCL命令。