搜尋

首頁  >  問答  >  主體

python - 使用`zipfile`模組在不解壓縮的情況下如何使用text模式讀取文字檔案?

我使用的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版本):

给我你的怀抱给我你的怀抱2714 天前954

全部回覆(2)我來回復

  • 巴扎黑

    巴扎黑2017-06-22 11:53:42

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

    content = f.readline()
    print(content.decode('utf8'))

    回覆
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-22 11:53:42

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

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

    回覆
    0
  • 取消回覆