[英]Python: Print specific range of line from text file
我的目录中有几个文本文件。 在每个文本文件中,它们都有这些行
***************错误摘要**********************
1行
2号线
第n行
===================================
每个文本文件的行数(n)不相等。 例如,file1有3行,file2有1行,依此类推。 我要做的是从列表的第1行到第n行打印。 每个文件都有自己的列表。
这是我的第一个代码
target = "Error Summary"
for file in files:
content = open(os.path.join(subdir, file),'r')
for line in content:
if target in line:
chunk = ''.join(islice(content,50))
chunk = chunk.split("==", 1)[0]
chunk_list.append(chunk)
但是这些将干扰我的下一个代码,因为指针已经移至第51行。因此,我给出了新代码
for line in content:
if target in line:
for i in range(50):
chunk = content.next()
if chunk.startswith("=="):
break
chunck_list.append(chunk)
看起来不错 但是,所有行都打印在一个列表中。 有人可以帮忙吗?
- - - - - - - - - - - - - -编辑 - - - - - - - - - - - -------
我已经有了代码
for line in content:
if target in line:
for line in content:
if line.startswith("=="):
break
chunk_list.append(line)
但是输出压缩在一个列表中。 我想要的是list1中File1的输出,list2中File2的输出,等等。 有人请帮助我。
我建议使用linecache
。 这是该库的文档。 您可以执行以下操作:
>>> import linecache
>>> linecache.getline(FILENAME, LINENUMBER)
将文件存储在内存中会很方便,但请记住,如果您要读取一百万个文件,则无法扩展。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.