python openpyxl內存不主動釋放 ——關閉Excel工作簿后內存依舊(MemoryError)


在openpyxl對Excel讀寫操作過程中,發現內存沒有馬上釋放,如果得多次讀取大文件,內存爪機,后續代碼就無法運行。

嘗試:各種wb.save()或者with open等途徑無法解決。

發現:因為python的回收機制,導致內存無法馬上釋放,於是乎就有了

import gc (garbage collector)
del wb,ws            #wb為打開的工作表
gc.collect()         #馬上內存就釋放了。

 

效果喜人:從最高的6/7GB占用可以立刻回到1/2GB

 

還有一個是谷歌找到了,也記錄下(不過我用了沒效果)——主要是不同是以只讀模式打開。

with open(xlsx_filename, "rb") as f:
    in_mem_file = io.BytesIO(f.read())

wb = load_workbook(in_mem_file, read_only=True)

  

希望可以幫到遇到類似問題的小伙伴!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM