在Mac上的Python readline()

3 投票
2 回答
2207 浏览
提问于 2025-04-16 20:14

我刚接触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

撰写回答