我目前有一个 python 脚本的主要问题。该脚本通过处理程序运行任意命令,以将不正确的错误报告转换为正确的错误报告。
我遇到的问题是让脚本在 Windows 上正常工作,其路径中包含与符号的命令。我尝试引用命令,用 ^ 转义 & 符号,但都不起作用。我现在没有主意了。有什么建议么?
从目前的回应中澄清:
- 我正在使用子流程模块
- 我将命令行+参数作为列表传递
- 问题在于命令本身的路径,而不是任何参数
- 我试过引用命令。它会导致
[Error 123] The filename, directory name, or volume label syntax is incorrect
错误 - 我没有使用 shell 参数(所以
shell=false
) - 万一这很重要,我会抓住一个管道到 stderr 来处理它,但忽略 stdout 和 stdin
- 它目前仅适用于 Windows,并且在我迄今为止测试过的所有其他情况下都可以正常工作。
- 失败的命令是:
p = subprocess.Popen(prog, stderr = subprocess.PIPE, bufsize=-1)
当列表 'prog' 的第一个元素包含任何 & 符号时。引用第一个字符串不起作用。