python - 使用`zipfile`模塊在不解壓縮的情況下如何使用text模式讀取文本文件?
問題描述
我使用的Python版本為3.5.2,嘗試用zipfile模塊的zipfile.ZipFile.open方法打開一個(gè)壓縮包中的文本文件時(shí),即使使用了文檔中要求的rU參數(shù),打開時(shí)仍然是以二進(jìn)制數(shù)據(jù)格式打開的,百思不得其解。
代碼:
>>> import zipfile>>> zf = zipfile.ZipFile(’/Users/chiqingjun/Downloads/top-1m.csv.zip’)>>> zf.namelist()[’top-1m.csv’]>>> f = zf.open(zf.namelist()[0], mode=’rU’)>>> f<zipfile.ZipExtFile name=’top-1m.csv’ mode=’rU’ compress_type=deflate>>>> f.readline()b’1,google.comn’# 仍然是二進(jìn)制數(shù)據(jù)
官方文檔(3.5.2版本):
問題解答
回答1:其實(shí)最后輸出的二進(jìn)制, 和zipfile無關(guān), 是和py3.5有關(guān), 你可以在輸出的結(jié)果解碼, 就能得到字符類型了
content = f.readline()print(content.decode(’utf8’))回答2:
文檔已經(jīng)說了呀,rU是 通用換行符,并且將在3.6 移除此模式。
壓縮文件以二進(jìn)制讀取字節(jié)內(nèi)容是應(yīng)該的,后面如何轉(zhuǎn)碼由程序員決定。
相關(guān)文章:
1. php工具中的mysql還是5.1以下的,請(qǐng)問如何才能升級(jí)到5.1以上?2. java - 根據(jù)月份查詢多個(gè)表里的內(nèi)容怎么實(shí)現(xiàn)好?3. 前端 - 關(guān)于img父容器的高度會(huì)比img的高度多幾像素的問題?4. javascript - 在 model里定義的 引用表模型時(shí),model為undefined。5. atom開始輸入!然后按tab只有空格出現(xiàn)沒有html格式出現(xiàn)6. css3 - 這個(gè)右下角折角用css怎么畫出來?7. css3 - 沒明白盒子的height隨width的變化這段css是怎樣實(shí)現(xiàn)的?8. python3.x - c++調(diào)用python39. javascript - 移動(dòng)端自適應(yīng)10. ios - 類似微博首頁(yè),一張圖的時(shí)候是如何確定圖大小的?
