在设定的行范围内读取文本文件



是否可以从文本文件中读取一个固定的行范围,例如从第20行到第52行?

我打开文件并像这样读取文件:

text_file = open(file_to_save, "r")
line = text_file.readline()

,但只希望将数据保存在指定的范围内,或者如果可能的话,从包含——data的行后读入到另一行包含——end of data的行

我已经浏览了文档和在线示例,只能找到指定新行或其他内容的示例

您可以在文件对象上使用itertools.islice(),并使用迭代只读取特定的行:

import itertools
with open(file_to_save, "r") as text_file:
    for line in itertools.islice(text_file, 19, 52):
         # do something with line

将读取第20行到第52行;Python使用基于0的索引,因此第1行编号为0。

使用file对象作为迭代器给了你很大的灵活性;你可以通过调用文件对象上的next()来读取额外的行,例如,当你这样做时,推进行'指针'。

当使用文件作为可迭代对象时,不要使用readline();这两种技术不容易混合。

您可以做两件事。您可以使用enumerate(),并使用if语句:

text_file = open(file_to_save, "r")
lines = []
for index, text in enumerate(text_file):
    if 19 <= index <= 51:
        lines.append(text)

或者,您可以使用readlines(),然后slice:

text_file = open(file_to_save, "r")
lines = text_file.readlines()
lines = lines[19:52]

HM,您可以尝试使用while循环....但是你应该知道你想要加载哪个字符串的文本,这不是最好的方法:

text_file=open(name,'r')
line=text.readline()
while line!=(" ") #type the line where you want it to stop
print (line

最新更新