如何读取压缩文件中的文本文件?
假设我有一个压缩文件,名字叫“files.zip”,里面包含了两个文本文件:
words
一个是“text1.txt”,还有一个是“text2.txt”。
other words
我想知道怎么用Python打开并读取“text1.txt”这个文件。我知道如果是打开一个不在压缩文件里的文本文件,我通常会这样做:
file = open('text1.txt','r')
3 个回答
5
从Python 3.8开始,你可以为zip文件的内容创建一个叫做
with zipfile.ZipFile('spam.zip') as zf:
# Create a path object.
path = zipfile.Path(zf, at='somedir/somefile.txt')
# Read all the contents (Python 3.8+):
contents = path.read(encoding='UTF-8')
# Or open as as file (Python 3.9+):
with path.open(encoding='UTF-8') as f:
# Do stuff
27
如果你需要在一个ZIP压缩文件里以文本模式打开一个文件,比如为了把它传给csv.reader
,你可以使用io.TextIOWrapper
来实现:
import io
import zipfile
with zipfile.ZipFile("files.zip") as zf:
with io.TextIOWrapper(zf.open("text1.txt"), encoding="utf-8") as f:
...
17
你可以这样使用 zipfile 模块:
zip = zipfile.ZipFile('test.zip')
file = zip.read('text1.txt')
别忘了先导入 zipfile 模块:import zipfile