我使用的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版本):
其實最後輸出的二進制, 和
zipfile
無關, 是和py3.5
有關, 你可以在輸出的結果解碼, 就能得到字符類型了文件已經說了呀,
rU
是通用換行符
,並且將在3.6 移除此模式。壓縮檔案以二進位讀取位元組內容是應該的,後面如何轉碼由程式設計師決定。