Python-如何逐行读取大文件

发布于 2021-02-02 23:22:51

我想遍历整个文件的每一行。一种方法是读取整个文件,将其保存到列表中,然后遍历感兴趣的行。此方法占用大量内存,因此我正在寻找替代方法。

到目前为止,我的代码:

for each_line in fileinput.input(input_file):
    do_something(each_line)

    for each_line_again in fileinput.input(input_file):
        do_something(each_line_again)

执行此代码将显示错误消息:device active

有什么建议么?

目的是计算成对的字符串相似度,这意味着对于文件中的每一行,我要计算每隔一行的Levenshtein距离。

关注者
0
被浏览
115
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    正确的,完全Python的读取文件的方法如下:

    with open(...) as f:
        for line in f:
            # Do something with 'line'
    

    该with语句处理文件的打开和关闭,包括内部块是否引发异常。该for line in f会将文件对象f视为可迭代,它会自动使用缓冲I / O和内存管理,这样你就不必对大文件的担心。

    应该有一种-最好只有一种-显而易见的方法。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看