在Python字符串中找到一行(不是文件)

时间:2011-05-05 11:35:16

标签: python regex grep

我知道如何使用文件执行此操作,您只需执行file = file.open(f)f

file = open("file.txt")
for line in file.readlines():
  if line.startswith("foo"):
    print line

但现在我正在阅读像这样的过程的输出

log = os.popen("log.sh").read()

这输出为一个字符串,可以与打印精细一起使用,但是如果我执行“for log in log”它会分割每个字符,而不是行。而且,作为一个字符串,没有.readlines()属性。

我的最终目标是能够“grep”日志中的修订号并打印该行(以及上方和下方)

2 个答案:

答案 0 :(得分:9)

for line in log.splitlines():
    # whatever

请注意,您不需要将f.readlines()用于文件f

for line in f:
    # whatever

会正常工作。

答案 1 :(得分:6)

您有几种选择:

选项1

log = os.popen("log.sh").readlines()

这给出了一个字符串列表,您可以像处理文件时那样处理它。

选项2

log = os.popen("log.sh").read()
for line in log.splitlines(True):
   ...