假设我有一个名为“files.zip”的 zip 文件 它包含 “文本1.txt”:
words
和 “文本2.txt”:
other words
如何告诉 python 打开并读取 text1.txt 文件?我知道通常要打开 zip 文件之外的文本文件,我会这样做:
file = open('text1.txt','r')
如果您需要以文本模式打开 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:
...
您可以像这样使用 zipfile 模块:
zip = zipfile.ZipFile('test.zip')
file = zip.read('text1.txt')
不要忘记导入 zipfile 模块:
import zipfile
自 Python 3.8 起,可以为 zipfile 内容构造 Path 对象,并使用其 read_text 方法将它们读取为文本。 从 Python 3.9 开始,可以在路径对象的 open 方法中指定文本模式。
import zipfile
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_text(encoding='UTF-8')
# Or open as as file (Python 3.9+):
with path.open(encoding='UTF-8') as f:
# Do stuff