python - 使用`zipfile`模組在不解壓縮的情況下如何使用text模式讀取文字檔案?
给我你的怀抱
给我你的怀抱 2017-06-22 11:51:42
0
2
952

我使用的Python版本為3.5.2,嘗試用zipfile模組的zipfile.ZipFile.open方法開啟一個壓縮套件中的文字文件時,即使使用了文件中要求的rU參數,開啟時仍然是以二進位資料格式開啟的,百思不得其解。

程式碼:

>>> 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.com\n'
# 仍然是二进制数据

官方文件(3.5.2版本):

给我你的怀抱
给我你的怀抱

全部回覆(2)
巴扎黑

其實最後輸出的二進制, 和zipfile無關, 是和py3.5有關, 你可以在輸出的結果解碼, 就能得到字符類型了

content = f.readline()
print(content.decode('utf8'))
女神的闺蜜爱上我

文件已經說了呀,rU通用換行符,並且將在3.6 移除此模式。

壓縮檔案以二進位讀取位元組內容是應該的,後面如何轉碼由程式設計師決定。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板