在 Python 中打开一个 Zip 文件而不解压它

Najwa Riyaz 2023年10月10日
  1. 在 Python 中使用 zipfile.ZipFile() 函数打开一个 Zip 文件,而无需临时解压缩它
  2. 在 Python 中使用 ZipFile.open() 函数打开一个 Zip 文件,而无需临时提取它
在 Python 中打开一个 Zip 文件而不解压它

本文介绍了如何在 Python 软件中打开 zip 文件而无需临时解压。要打开 zip 文件而不用 Python 临时解压缩它,请使用 zipfile Python 库。

为此,导入 zipfile 标准库。然后,使用以下任一功能。

  • 在读取模式下使用 zipfile.ZipFile() 函数。
  • 在读取模式下使用 ZipFile.open() 函数。

在我们开始之前,请准备好 zip 文件。请按照以下步骤操作。

  • 准备一个名为 mail.txt 的文本文件,其中包含一些内容:
    This is from mail.txt
    
  • 压缩 mail.txt 文件。
  • 将 zip 文件命名为 mail.zip

在 Python 中使用 zipfile.ZipFile() 函数打开一个 Zip 文件,而无需临时解压缩它

下面是一个示例程序,它向你展示了如何在不使用 Python 临时解压缩的情况下打开 zip 文件。按以下方式在读取模式下使用 zipfile.ZipFile() 函数。

zipfile.ZipFile(file, mode="r")

在这里,file 是:

  • 文件路径(字符串)
  • 一个类似文件的对象
  • 一个类似路径的对象

例如,

import zipfile

archive = zipfile.ZipFile("mail.zip", "r")
# Let us verify the operation..
txtdata = archive.read("mail.txt")
print(txtdata)

输出:

b'This is from mail.txt'

在 Python 中使用 ZipFile.open() 函数打开一个 Zip 文件,而无需临时提取它

下面是一个示例,演示了如何在不使用 Python 临时解压缩的情况下打开 zip 文件。

在这里,我们在读取模式下使用 open() 函数。

ZipFile.open(name, mode="r")

zip 文件的成员被视为二进制文件类对象。这里的 name 可以是:

  • zip 中的文件名
  • ZipInfo 对象

这是一个例子。

import zipfile

with zipfile.ZipFile("mail.zip") as thezip:
    with thezip.open("mail.txt", mode="r") as thefile:
        # Let us verify the operation..
        print(thefile.read())

输出:

b'This is from mail.txt'

相关文章 - Python File