在Mac上的Python readline()
我刚接触Python,正在学习文件输入输出的基本知识。
我正在处理一个很大的文件(有200万行),文件的格式是这样的:
56fr4
4543d
4343d
hirh3
我看到说使用readline()是最好的选择,因为它不会把整个文件都加载到内存里。但是当我试着查看文档时,发现它似乎只适用于Unix系统?而我是在Mac上。
我可以在Mac上使用readline而不把整个文件加载到内存里吗?如果我想读取文件中的第3行,应该怎么写代码呢?文档中的例子对我来说有点难懂。
编辑
这是一个返回代码的函数:
def getCode(i):
with open("test.txt") as file:
for index, line in enumerate(f):
if index == i:
code = # what does it equal?
break
return code
2 个回答
0
+1 @ SpaceC0wb0y
你也可以这样做:
f = open('filepath')
f.readline() # first line - let it pass
f.readline() # second line - let it pass
third_line = f.readline()
f.close()
12
你不需要用 readline
:
with open("data.txt") as file:
for line in file:
# do stuff with line
这个方法会一行一行地读取整个文件,而不是一次性全部读取(这样你就不需要用很多内存)。如果你在读取文件的过程中找到了想要的那一行,可以用 break
来结束这个循环。如果你知道想要的那一行的索引,可以用这个方法:
with open("data.txt") as file:
for index, line in enumerate(file):
if index == 2: # looking for third line (0-based indexes)
# do stuff with this line
break # no need to go on