簡體   English   中英

Python:行緩存文件大小限制?

[英]Python: linecache file size limit?

我有一個很大的.txt 文件。 每個條目都在一個新行上。 我正在嘗試訪問該文件並遍歷每一行以獲取條目。 但是,當我使用linecache.getline('file_path', 1)時,我得到一個空字符串。 Python 文檔中的哪一個是linecache返回錯誤的方式。 有文件大小限制嗎? 我正在嘗試讀取一個 1.2GB 的文件。 我也相當確定linecache在獲得行號之前仍在嘗試將整個文件讀入 memory 。 RAM 使用率上升大約文件的大小,然后恢復正常。 我對linecache做錯了什么? 除了linecache之外還有什么建議嗎?

如果您只是想逐行讀取文件,而不是將其加載到 memory 中,則 python open帶有自己的生成器。

with open("filename", "r") as file:
    for line in file:
        # Do stuff

只要你在for循環中做你必須做的事情,你就不必擔心memory。

有關官方文檔的更多信息

您需要做的就是使用文件 object 作為迭代器。

for line in open("log.txt"):
    do_something_with(line)

更好的是在 Python 版本中使用上下文管理器。

with open("log.txt") as fileobject:
    for line in fileobject:
        do_something_with(line)

這也會自動關閉文件。

暫無
暫無

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

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