Python處理大檔案
要將一個4G的文字檔案切分開
讀取文字檔案大致有read() 、readline()、readlines()三種
read()會將所有內容讀入到一個字串中
readlines()將所有內容按行讀取,返回一個列表,列表中每個元素是一個字串,一個字串是一行內容,所以可利用如下格式處理
- for line in f.readlines(): # 1
- process(line)
其實在python2.2之後,檔案也是一個物件,甚至可以這樣處理
- for line in f: # 2
- process(line)
readline()每次讀取一行
所以read()及readlines()效率高,但是需要記憶體能放的下
而後一種可以處理比較大的檔案。
在處理時採用第1種方法和第2中方法,都只處理了不到200M的資料……
採用readline()
- line = f.readline() #3
- while line:
- process(line)
- line = f.readline()
同樣只處理不到200M,很怪
最終,
- BUFSIZE = 1024 #4
- lines = f.readlines(BUFSIZE)
- while lines:
- for line in lines:
- process(line)
- lines = readlines(BUFSIZE)
全部資料處理完畢
但是將BUFSIZE改為10240,又只是處理了不到200M……
=====================================================================================================
自己新建了一個2G左右的檔案,
採用readline()不斷迴圈,可以
採用readlines()指定讀取行數迴圈,可以
採用第1中第2中方法,提示記憶體不足
這才是正常的嘛
從效率來說
採用第4種要比第3種快一些
---------------------------------------------------
估計原始檔有錯誤,在檔案中間有符號可以被識別為EOF。但是不知為何BUFSIZE為1024時又可以……
--------------------------------------------------
相關文章
- Python 如何處理大檔案Python
- python處理檔案Python
- python檔案處理Python
- python 檔案處理Python
- Python 檔案處理Python
- 使用Java處理大檔案Java
- python處理txt檔案Python
- Python 批量處理檔案Python
- Python之檔案處理Python
- Python如何處理檔案的?Python
- python ini 配置檔案處理Python
- Python 檔案(file)處理 例子Python
- Python批處理:檔案操作Python
- 使用 Python 處理 CSV 檔案Python
- java讀取大檔案並處理Java
- Python筆記(五)——檔案處理Python筆記
- Python3中檔案處理Python
- php上傳大檔案失敗處理PHP
- 05 python開發之檔案處理Python
- Python檔案處理-專題筆記Python筆記
- Python中可靠地處理檔案Python
- .NET Core 如何上傳檔案及處理大檔案上傳
- [R]檔案處理
- bat處理檔案BAT
- bat檔案處理BAT
- 如何處理大體積 XLSX/CSV/TXT 檔案?
- 大體積XML檔案處理效能問題XML
- Python處理CSV檔案的幾個方法Python
- Linux學習之檔案處理命令(二)目錄處理命令 && 檔案處理命令Linux
- 如何使用vi處理GB級別的大檔案
- Golang 快速讀取處理大日誌檔案工具Golang
- Serverless Streaming:毫秒級流式大檔案處理探秘Server
- tempfile檔案過大問題處理 for logical standby
- oracle bdump 下.trc檔案過大問題處理Oracle
- Python之錯誤異常和檔案處理Python
- 3.python檔案操作及異常處理Python
- window 批處理檔案
- Go xml檔案處理GoXML