在Python字符串中查找一行(非文件)
我知道怎么用文件来处理这个问题,你只需要这样做: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):
...