用python解码zip文件中的每个文件

问题描述

我有一个 zip 文件 file link

它是用 utf-8 代码编码的,我如何解码其中的每个文件?我尝试过但失败了:TypeError:使用“utf-8”编解码器解码失败(TypeError:需要类似字节的对象,而不是“ZipFile”)

from zipfile import ZipFile
import codecs

with ZipFile('articles.zip','r') as zip:
    with zip.open('articles/document0001.txt') as file:
       codecs.decode(file,encoding='utf-8',errors='strict')

那个 Zip 上还有 100 个文件,有什么聪明的方法可以一次性解码所有文件吗?

解决方法

您可以在文本上使用 bytes.decode

from zipfile import ZipFile

with ZipFile('articles.zip','r') as z:
    with z.open('articles/document0001.txt') as file:
        file_text = file.read().decode('utf-8')
        print(file_text)  # or do whatever else you want to do with it.