Python 中的转义转义序列

发布于 2024-11-09 23:38:10 字数 558 浏览 5 评论 0原文

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

代码片段:

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

是否有解决方法或可以使用的函数?

感谢您的帮助 谢谢

I am kind of new to python. Goal is to execute a shell command using subprocess parse & retrive the printed output from shell. The execution errors out as shown in the sample output msg below. Also shown below is the sample code snippet

Code snippet:

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

Output:

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

Is there a workaround or a function that could be used ?

Appreciate your help
Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

拿命拼未来 2024-11-16 23:38:10

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

  1. 您忘记导入子流程
  2. 它应该是 sed -e 's/.*Location: //g'。您写的是 ///g 而不是 s///g
  3. tst.txt 不存在。

I suppose your main error is not python related. To be more precise, there are 3 of them:

  1. You forgot to import subprocess.
  2. It should be sed -e 's/.*Location: //g'. You wrote ///g instead of s///g.
  3. tst.txt does not exist.
落叶缤纷 2024-11-16 23:38:10

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

You should be passing testStr directly as the first argument, rather than enclosing it in a list. See subprocess.Popen, the paragraph that starts "On Unix, with shell=True: ...".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文