python如何打開一個大文件?


 1 with open('a.csv','r') as f:
 2 #1
 3     for i in f:
 4         print(i)
 5 #2
 6     while True:
 7         a = f.readline()
 8         if not a:
 9             break
10 #3
11     f.readlines()                

用with語句打開文件返回一個可以迭代的文件對象綁定在as后的變量f;

第一種:直接遍歷文件對象,會自動使用IO緩存和內存管理,是一種很好的方法;

第二種:調用readline()方法,一次讀取一行,也不會占用太大內存,但代碼顯得臃腫,而且,雖然readline()方法是用C實現的,但相比於1的直接操作文件對象,速度上並沒有明顯的提升;

第三種:調用readlines()方法,返回的是一個包含所有文件元素的列表,如果文件很大(1個G),那就很占用內存,所以大文件情況下,最不推薦這種方法。

綜上:推薦第一種寫法,即直接遍歷文件對象。

另外,還可以用pandas提供的分塊讀取功能,下一篇詳細介紹。


免責聲明!

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



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