如何在Python中运行携带附加命令参数的.exe可执行文件
错误原因
os.startfile()不支持直接把启动参数拼接在可执行文件路径字符串后方,你需要将路径和参数分开作为不同参数传入方法。
修复方案1:继续使用os.startfile
正确写法如下:
if 'valorant' in query: # 路径前加r标记为原始字符串,不需要转义反斜杠 os.startfile( r"D:\Games\Riot Games\Riot Client\RiotClientServices.exe", "open", "--launch-product=valorant --launch-patchline=live" ) speak('okay')
修复方案2:更推荐使用subprocess模块(适配性更强,不容易出问题)
subprocess是Python官方推荐的进程调用模块,写法更规范,也能避免Windows专属方法的兼容性问题:
import subprocess if 'valorant' in query: subprocess.Popen([ r"D:\Games\Riot Games\Riot Client\RiotClientServices.exe", "--launch-product=valorant", "--launch-patchline=live" ]) speak('okay')
注意事项
- 路径前的
r为原始字符串标识,可以避免路径中的反斜杠被识别为转义字符,不需要手动写双反斜杠。 - 使用subprocess时将每个参数拆分到列表中,可以规避路径带空格、参数识别错误等常见问题。
内容的提问来源于stack exchange,提问作者Snipey
相关产品推荐
相关产品推荐

