在Python字符串中查找一行(非文件)

1 投票
2 回答
3727 浏览
提问于 2025-04-16 17:02

我知道怎么用文件来处理这个问题,你只需要这样做: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()

这个输出是一个字符串,可以用print很好地显示,但如果我用“for line in log”,它会把每个字符都分开,而不是按行分开。而且,因为它是字符串,所以没有.readlines()这个功能。

我的最终目标是能够在日志中“grep”出一个修订号,并打印出那一行(还有它上下的行)

2 个回答

9
for line in log.splitlines():
    # whatever

注意,你不需要使用 f.readlines() 来处理一个文件 f

for line in f:
    # whatever

这样做也没问题。

6

你有几种选择:

选项 1

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

这个选项会给你一个字符串的列表,你可以像读取文件一样处理这些字符串。

选项 2

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

撰写回答