是否可以从文本文件中读取设置的行范围,例如从第20行到第52行?
我打开文件并读取这样的文件:
text_file = open(file_to_save, "r")
line = text_file.readline()
Run Code Online (Sandbox Code Playgroud)
但只想将数据保存在一个设定的范围内,或者是否可以从包含---数据---的行之后读入包含 - 数据结尾的另一行 -
我查看了文档和在线示例,只能找到指定新行或其他内容的示例
Mar*_*ers 25
您可以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
Run Code Online (Sandbox Code Playgroud)
将读取第20行到第52行; Python使用基于0的索引,因此第1行编号为0.
使用文件对象作为迭代器可以提供很大的灵活性; 您可以通过调用next()文件对象来读取额外的行,例如,在您执行此操作时前进行"指针".
将文件用作可迭代文件时,请勿使用readline() ; 这两种技术不易混合.
小智 5
您可以做两件事。您可以使用enumerate(),并使用以下if语句:
text_file = open(file_to_save, "r")
lines = []
for index, text in enumerate(text_file):
if 19 <= index <= 51:
lines.append(text)
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用readlines()然后切片:
text_file = open(file_to_save, "r")
lines = text_file.readlines()
lines = lines[19:52]
Run Code Online (Sandbox Code Playgroud)