【问题标题】:Escaping escape sequence in Python在 Python 中转义转义序列
【发布时间】:2023-03-15 19:15:01
【问题描述】:

我对python有点陌生。目标是使用子进程解析执行 shell 命令并从 shell 中检索打印输出。执行错误如下面的示例输出消息所示。下面还展示了示例代码sn -p

代码sn-p:

testStr = "cat tst.txt | grep Location | sed -e '/.*Location: //g' "
print "testStr = "+testStr
testStrOut = subprocess.Popen([testStr],shell=True,stdout=subprocess.PIPE).communicate()[0]

输出:

testStr = cat tst.txt | grep Location | sed -e '/.*Location: //g' 
cat: tst.txt: No such file or directory
sed: -e expression #1, char 15: unknown command: `/'

是否有可以使用的解决方法或功能?

感谢您的帮助 谢谢

【问题讨论】:

  • 给子进程“tst.txt”文件的完整路径。

标签: python escaping unicode-escapes


【解决方案1】:

您应该将 testStr 作为第一个参数直接传递,而不是将其包含在列表中。请参阅subprocess.Popen,以“在 Unix 上,使用 shell=True: ...”开头的段落。

【讨论】:

    【解决方案2】:

    我想您的主要错误与 python 无关。更准确地说,有 3 个:

    1. 你忘了import subprocess
    2. 应该是sed -e 's/.*Location: //g'。你写的是///g而不是s///g
    3. tst.txt 不存在。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 2015-11-22
    相关资源
    最近更新 更多