簡體   English   中英

使用Python 3中的io.BufferedReader快速讀取gzip(文本文件)

[英]Fast reading of gzip (text file) using io.BufferedReader in Python 3

我正在嘗試使用gzip模塊有效地讀入和解析壓縮文本文件。 鏈接建議使用io.BufferedReader包裝gzip文件對象,如下所示:

import gzip, io
gz = gzip.open(in_path, 'rb')
f = io.BufferedReader(gz)
     for line in f.readlines():
         # do stuff
gz.close()

要在Python 3中執行此操作,我認為必須使用mode='rb'調用gzip 結果是該line是二進制字符串。 但是,我需要line作為text / ascii字符串。 有沒有更有效的方法使用BufferedReader將文件作為文本字符串讀取,或者我必須在for循環內解碼line

您可以使用io.TextIOWrapper將二進制流無縫地包裝到文本流中:

f = io.TextIOWrapper(gz)

或者正如@ShadowRanger指出的那樣,您只需在文本模式下打開gzip文件,這樣gzip模塊就會為您應用io.TextIOWrapper包裝:

for line in gzip.open(in_path, 'rt'):
    # do stuff

暫無
暫無

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

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