在Python中转义转义序列

0 投票
2 回答
761 浏览
提问于 2025-04-16 18:23

我对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没有关系。更准确地说,有三个问题:

  1. 你忘了 import subprocess 这一行。
  2. 应该写成 sed -e 's/.*Location: //g'。你写成了 ///g,应该是 s///g
  3. tst.txt 这个文件不存在。

撰写回答