2011-05-05 45 views
1

我知道如何与文件做到这一点,你只是做文件= file.open(F)为查找在Python串线(不是文件)

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

但现在我在看的处理的输出这样

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

此输出以字符串的形式,其可以与打印细被使用,但是如果我做一个“在日志行”,它将每个字符,而不是线。而且,作为一个字符串,没有.readlines()属性。

我的最终目标是要能够“grep的”日志中一个版本号,并打印线

回答

5

您有几种选择:

选项1

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

这给字符串列表中读取文件时,你可以处理完全相同像你一样。

选项2

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

@美国洛特:已经修正了,谢谢。 – NPE 2011-05-05 11:41:36

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

请注意,您不需要使用f.readlines()的(和上面和下面)一个文件f

for line in f: 
    # whatever 

会正常工作。