【问题标题】:Use readline to read txt file python3使用readline读取txt文件python3
【发布时间】:2015-05-10 06:18:42
【问题描述】:

我已经为此工作了几个小时,但我无法做到正确,任何帮助将不胜感激!我的问题是如何使用函数.readline() 读取文本文件的末尾?我知道.readlines() 也可以工作,但我试图一次处理一行。

到目前为止,这是我的代码:

    a = open("SampleTxt.txt","r")

    While True:

        a.readline()

我的问题是,当我运行它时,我得到了一个无限循环,一旦它无法再读取一行,它不应该停止吗?

【问题讨论】:

    标签: python python-3.x readline


    【解决方案1】:

    a.readline() 将在没有更多可用数据时返回'' 一个空字符串,您需要检查它然后破坏您的while,例如:

    while True:
        line = a.readline()
        if not line: 
            break
    

    如果不是纯粹出于学习目的,那么您确实应该使用with 语句和for循环逐行处理文件:

    with open('SampleTxt.txt') as fin:
        for line in fin:
            pass # do something
    

    你的意图更清楚了,通过使用with 块,fileobj 将在异常或块结束时释放。

    【讨论】:

    • 第二种方法还是逐行读取文件,不会把整个文件加载到内存中吧?
    • @nishant 是的,更好/更高效的内存使用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    相关资源
    最近更新 更多