在特定行范围内读取文本文件
有没有办法从一个文本文件中读取特定的行,比如从第20行到第52行?
我现在是这样打开文件并读取内容的:
text_file = open(file_to_save, "r")
line = text_file.readline()
但是我只想保存特定范围内的数据,或者说是否可以从包含 --- data --- 的那一行开始读取,到包含 -- end of data -- 的另一行结束。
我查阅了文档和网上的例子,但只找到一些关于换行的例子,没找到符合我需求的。
3 个回答
-1
嗯,你可以试试用while循环来做这个。不过你得知道你想加载到哪个字符串,这样做其实不是最好的方法:
text_file=open(name,'r')
line=text.readline()
while line!=(" ") #type the line where you want it to stop
print (line
8
你可以做两件事。第一种是使用 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]
28
你可以使用 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开始计算的,所以第一行的编号是0。
把文件对象当作一个迭代器使用,可以让你有很多灵活的操作;比如你可以通过 调用 next()
来读取下一行,这样就能逐行向下移动。
当你把文件当作一个可迭代对象时,不要 使用 readline()
;这两种方法不太容易混合使用。