我能够打开命令提示符并使用子流程模块将目录更改为所需位置,但我无法传递更多参数来运行应用程序以及一些命令行参数。我是子流程模块的新手,所以我在stackoverflow上进行了一些搜索,但找不到所需的结果。
Mycode:
import subprocess
path = r"C:/Users/Application_Folder"
p = subprocess.Popen(r"cmd.exe", cwd="C:/Project_Files", shell=True)
所需输出:
Path: C:UsersApplication_folderApplication.exe
Need to open the cmd prompt in windows at the Application_folder location,
run the Application.exe by passing some command line arguments, using python
只需传递您实际想要执行的命令行,以及可执行路径和您想要传递的任何参数:
command_line = [r'C:UsersApplication_FolderApplication.exe', '/argument1', '/argument2']
p = subprocess.Popen(command_line, cwd=r'C:Project_Files')
需要记住的几个注意事项:
- 您不应该使用
shell=True
。这里没有必要——事实上几乎从来没有必要——但它确实会带来潜在的安全风险 - 原始字符串文字(从
r'
或r"
开始(的全部目的是更改字符串中反斜杠字符的解释方式。r'C:Program Files'
与"C:\Program Files"
完全相同。如果您的字符串中没有反斜杠,请不要使用r
前缀