使用Subprocess(Python)发送CMD命令提示

时间:2018-03-24 01:51:46

标签: python cmd automation subprocess virtualenv

对于subprocess中的所有专家来说,这是一个初学者级别的问题。

在Windows中,我是否可以使用subprocess发送以下CMD命令,以便它们 在一个shell中一个接一个地执行

  1. cd C:\ Users \ User \ myvirtualenvs \ project1
  2. 脚本\ activate.bat
  3. Hello.py
  4. 实际上,我正在尝试加载Virtualenv而无需手动触摸CMD提示。

    提前致谢:)

1 个答案:

答案 0 :(得分:2)

就像评论&&中提到的那样:

from subprocess import call

call(r'cd C:\ && echo 123 && dir', shell=True)

请注意shell=True参数。

由于评论而编辑:

如果您将原始输入值传递给调用,则

Shell=True是一个安全问题。请参阅docs

中的此示例
from subprocess import call
filename = input("What file would you like to display?\n")
>>> What file would you like to display?
>>> non_existent; rm -rf / #
call("cat " + filename, shell=True) # Uh-oh. This will end badly...

最初认为你想为个人目的制作一个小脚本。如果您想要提供此代码,请考虑通过distutils或setuptools打包代码。