【发布时间】:2010-09-12 08:22:39
【问题描述】:
我目前遇到了一个 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' 的第一个元素包含任何 & 符号时。引用第一个字符串不起作用。
【问题讨论】:
-
“脚本”到底是什么意思?什么适用于窗户?什么在其他操作系统上失败了?还有什么操作系统?
标签: python windows subprocess command-line-arguments