在Python中转义转义序列
我对Python还比较陌生。我的目标是使用subprocess来执行一个命令,并获取这个命令在终端输出的结果。但是执行的时候出现了错误,下面是错误信息的示例。还有下面是示例代码片段。
代码片段:
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 个回答
1
你应该直接把testStr作为第一个参数传递,而不是把它放在一个列表里。可以看看subprocess.Popen的文档,里面有一段是以“在Unix上,使用shell=True: ...”开头的。
1
我想你的主要错误和Python没有关系。更准确地说,有三个问题:
- 你忘了
import subprocess
这一行。 - 应该写成
sed -e 's/.*Location: //g'
。你写成了///g
,应该是s///g
。 tst.txt
这个文件不存在。