繁体   English   中英

Python:从文本文件打印特定范围的行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM