【发布时间】:2019-06-04 00:37:19
【问题描述】:
我想一个接一个地执行一些命令并将其存储到同一个 shell 中的变量中。每当我尝试执行下一个命令时,它都会在新的 shell 中执行
import subprocess
cmd1 = 'cd C:\\Program Files (x86)\\openvpn\\bin\\'
output = subprocess.getoutput(cmd1) # it goes to the above directory
cmd2 = 'openvpn.exe --help'
output2 = subprocess.getoutput(cmd2)
在cmd2运行时,一个新的shell执行这个命令并告诉-- 'openvpn.exe' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
我想一个接一个地执行几个命令并存储到变量中。所以我可以在其他命令中使用这些变量。
【问题讨论】:
-
简单的方法是将所有命令放入一个文件 (
tmp.cmd),然后运行该文件。 -
我想一个接一个地执行几个命令,这样我就可以存储到变量中,我必须在其他命令中使用一些变量。
-
再次,将所有这些命令放入
tmp.cmd,然后从 Python 运行tmp.cmd。另一种方法是在 Python 中使用os.chdir()。最可怕的版本是使用Pexpect模块并模拟shell 的输入。
标签: python-3.x shell subprocess command-line-arguments