【发布时间】:2012-03-03 01:00:51
【问题描述】:
平台:Windows
Grep:http://gnuwin32.sourceforge.net/packages/grep.htm
Python:2.7.2
用于执行命令的 Windows 命令提示符。
我正在文件中搜索以下模式"2345$"。
文件内容如下:
abcd 2345
2345
abcd 2345$
grep "2345$" file.txt
grep 成功返回 2 行(第一行和第二行)。
当我尝试通过 python 运行上述命令时,我看不到任何输出。 Python代码sn-p如下:
temp = open('file.txt', "r+")
grep_cmd = []
grep_cmd.extend([grep, '"2345$"' ,temp.name])
print grep_cmd
p = subprocess.Popen(grep_cmd,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
stdoutdata = p.communicate()[0]
print stdoutdata
如果我有
grep_cmd.extend([grep, '2345$' ,temp.name])
在我的 python 脚本中,我得到了正确的答案。
问题是为什么 grep 命令带有"
grep_cmd.extend([grep, '"2345$"' ,temp.name])
从 python 执行失败。 python不应该执行吗 命令原样。
谢谢 猜测。
【问题讨论】:
-
很抱歉没有直接回答您的问题,但是您有什么理由不想在 python 中手动“grep”文件?例如,使用
re?会少很多行... -
我知道我可以做一个 re.search。具体要求通过python执行命令。
-
好的,很公平@gudge。不要误会我的意思,只是想确保你知道你在做什么:)