我使用了来自shell的grep命令并且它给出了我想要的结果但是当我使用os.popen运行我的python脚本时它说
grep: SUMMARY:: No such file or directory
普通grep命令:
grep -A 12 -i "LOGBOOK SUMMARY:" my_folder/logbook.log
Python脚本
command="grep -A 12 -i LOGBOOK SUMMARY: my_folder/logbook.log"
result=os.popen(command)
正常的grep命令给出了我想要的结果。 第二个说没有这样的文件或目录
答案 0 :(得分:4)
您需要将搜索模式括在引号中:
command="grep -A 12 -i 'LOGBOOK SUMMARY:' my_folder/logbook.log"
如何诊断此类问题?从错误消息开始:
grep: SUMMARY:: No such file or directory
此错误消息告知grep
找不到名为SUMMARY:
的文件。
要问的正确问题是,grep
为什么要查找名为SUMMARY:
的文件?
答案是在你执行的命令行上,
某种程度上SUMMARY:
被视为文件名:
command="grep -A 12 -i LOGBOOK SUMMARY: my_folder/logbook.log"
当然!如果你在shell中执行该命令会发生这种情况:
grep -A 12 -i LOGBOOK SUMMARY: my_folder/logbook.log
这里,shell会在空格上拆分命令行,
并传递给grep
3个参数,LOGBOOK
,SUMMARY:
和my_folder/logbook.log
。
第一个参数LOGBOOK
用作搜索模式,
并将所有剩余的参数作为要搜索的文件名。