是否可以从文本文件中读取一定范围的行,例如从第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
next()
函数来读取额外的行,同时推进'指针'所在的行。readline()
;这两种技术不容易混合使用。file.seek()
进行随机访问,但是之后你需要手动搜索换行符,并且你无法知道行数的 数量。除非你的文件格式使用固定长度的行,否则如果需要读取特定行,按顺序读取会更加容易。 - Martijn Pieters你可以做两件事情。你可以使用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()
然后切片:text_file = open(file_to_save, "r")
lines = text_file.readlines()
lines = lines[19:52]
嗯,你可以尝试使用while循环来做一些事情...但是你应该知道你想要加载文本的字符串是到哪里的,这不是最好的方法:
text_file=open(name,'r')
line=text.readline()
while line!=(" ") #type the line where you want it to stop
print (line
itertools.islice
,itertools.dropwhile
和itertools.takewhile
。 - falsetru