在Python中转义转义序列

时间:2011-05-26 09:35:51

标签: python escaping unicode-escapes

我是python的新手。目标是使用子进程解析&执行shell命令。从shell返回打印输出。执行错误输出如下面的示例输出msg所示。下面还显示了示例代码段

代码段:

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: `/'

是否有可以使用的变通方法或功能?

感谢您的帮助 感谢

2 个答案:

答案 0 :(得分:1)

我认为你的主要错误与python无关。更确切地说,有3个:

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

答案 1 :(得分:1)

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