簡體   English   中英

什么時候是使用readline()的好時機?

[英]When is a good time to use readline()?

許多人已經問過如何在Python中逐行讀取文件。 而且,許多人建議采用以下方式,而不是使用readline()。

with open('myfile.py') as f:
  for line in f:

另外,有人說readlines()不是一種使用內存的有效方法,因為它一次讀取所有內容。

有沒有時間我應該使用readline()而不是上面推薦的方法? 或者,我應該忘記這個功能??

僅當使用for不可行或無用時,才應使用readline()

示例:該文件包含一個固定的標題

  • 第1行:修復了文件類型的標識字符串
  • 第二行:文件類型版本標識符
  • 第3行:以下二進制數據的大小
  • 其次是:給定數量的二進制數據

在這種情況下, for -loop需要某種行計數變量來記住當前處理的行。

這將最終在這樣的代碼中:

for i, line in enumerate(f):
    if i == 0:
        if line != "Foobar file format\n":
            raise Exception("Wrong file format")
    elif i == 1:
        if int(line) > 4:
            raise Exception("File format version too new")
    elif i == 2:
        size = int(line)
        break

而不僅僅是這個

if f.readline() != "Foobar file format\n":
    raise Exception("Wrong file format")

if int(f.readline()) > 4:
    raise Exception("File format version too new")

size = int(f.readline())

(為清楚起見省略了一些錯誤檢查)

如果你想一次一個地使用每一行,而不是它們出現在文件內部的順序(即第3-> 2-> 6-> 5->等),則讀取線可能很有用。 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM