如何在python中读取外部文件中特定范围的行?

时间:2018-08-27 23:23:10

标签: python python-3.x

让我们说您有一个包含50行代码的python文件,并且您想将特定范围的行读入列表。如果您想读取文件中的所有行,则只需使用this answer中的代码即可:

com.google.protobuf:protobuf-java-util

但是,如果您想读取特定范围的行,例如读取23-27行,该怎么办?

我尝试过此方法,但不起作用:

with open('yourfile.py') as f:
    content = f.readlines()

print(content)

3 个答案:

答案 0 :(得分:4)

你很近。 readlines返回一个列表,您可以对其进行切片,但是尝试直接在函数调用中传递切片是无效的语法。

f.readlines()[23:27]

如果文件很大,请避免读取整个文件的内存开销:

start, stop = 23, 27
for i in range(start):
    next(f)
content = []
for i in range(stop-start):
    content.append(next(f))

答案 1 :(得分:0)

尝试一下:

sublines = content[23:27]

答案 2 :(得分:0)

如果文件中有很多行,我相信您应该考虑使用f.readline()(不使用s)27次,并且只保存您想开始的行。 :)

否则,其他解决方案也是我也会做的(意味着:f.readlines()[23:28]。28,因为据我所知,外部范围已被排除。