当前位置:  开发笔记 > 编程语言 > 正文

&符号的Python子流程问题

如何解决《&符号的Python子流程问题》经验,为你挑选了1个好方法。

我目前遇到一个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'的第一个元素包含任何&符号时.引用第一个字符串不起作用.



1> Armin Ronach..:

确保您使用的是列表而没有shell扩展:

subprocess.Popen(['command', 'argument1', 'argument2'], shell=False)

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有