是否可以从文本文件中读取设置的行范围,例如从第20行到第52行?
我打开文件并按如下方式读取文件:
text_file = open(file_to_save, "r")
line = text_file.readline()
但只想将数据保存在设定范围内,或者是否可以从包含---数据---的行之后读入包含 - 数据结尾的另一行 -
我查看了文档和在线示例,只能找到指定新行或其他内容的示例
答案 0 :(得分:22)
您可以在文件对象上使用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。
使用文件对象作为迭代器可以提供很大的灵活性;您可以通过calling next()
on the file object读取额外的行,例如,在您这样做时推进行“指针”。
将文件用作可迭代时,don't use readline()
;这两种技术不易混合。
答案 1 :(得分:4)
你可以做两件事。您可以使用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]
答案 2 :(得分:-1)
HM,你可以尝试使用while循环....但你应该知道你想要加载文本的字符串,这不是最好的方法:
text_file=open(name,'r')
line=text.readline()
while line!=(" ") #type the line where you want it to stop
print (line