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

Najwa Riyaz 2023年1月30日 2021年7月13日
  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