问题描述
它是用 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.