欢迎访问宙启技术站
智能推送

Python中利用zipfile()模块遍历ZIP文件中的文件和文件夹

发布时间:2023-12-30 13:51:41

zipfile模块是Python中用于处理ZIP文件的标准库。它提供了一组方法,可以对ZIP文件进行创建、读取、修改和删除等操作。在本文中,我们将详细介绍如何使用zipfile模块来遍历ZIP文件中的文件和文件夹。

首先,我们需要导入zipfile模块:

import zipfile

接下来,我们使用zipfile模块的ZipFile()函数来打开一个ZIP文件:

zip_file = zipfile.ZipFile('example.zip', 'r')

这里的'example.zip'是ZIP文件的路径,'r'表示以只读模式打开文件。

现在,我们可以使用zipfile模块提供的各种方法来遍历ZIP文件中的文件和文件夹。

1. 遍历文件

使用namelist()方法可以获取ZIP文件中的所有文件名,返回一个字符串列表。我们可以通过遍历这个列表来获取每个文件的文件名。

for file_name in zip_file.namelist():
    print(file_name)

这里的file_name是每个文件的文件名。

2. 遍历文件夹

使用infolist()方法可以获取ZIP文件中的所有文件和文件夹信息,返回一个ZipInfo对象的列表。我们可以通过遍历这个列表来获取每个文件和文件夹的信息。

for zip_info in zip_file.infolist():
    if zip_info.filename.endswith('/'):
        print(zip_info.filename)

这里的zip_info是每个文件和文件夹的信息,我们通过判断文件名是否以'/'结尾来判断其是否为文件夹。

3. 遍历文件夹下的文件

使用getinfo()方法可以获取指定文件或文件夹的信息,返回一个ZipInfo对象。通过判断文件的文件名是否以文件夹名开头来判断文件是否在该文件夹下。

folder_name = 'example_folder/'
for zip_info in zip_file.infolist():
    if zip_info.filename.startswith(folder_name):
        print(zip_info.filename)

这里的folder_name是文件夹的名称,我们通过判断文件的文件名是否以folder_name开头来判断文件是否在该文件夹下。

最后,记得在使用完zipfile模块后关闭ZIP文件:

zip_file.close()

这是一个完整的例子,演示了如何使用zipfile模块遍历ZIP文件中的文件和文件夹:

import zipfile

zip_file = zipfile.ZipFile('example.zip', 'r')

# 遍历文件
for file_name in zip_file.namelist():
    print(file_name)

# 遍历文件夹
for zip_info in zip_file.infolist():
    if zip_info.filename.endswith('/'):
        print(zip_info.filename)

# 遍历文件夹下的文件
folder_name = 'example_folder/'
for zip_info in zip_file.infolist():
    if zip_info.filename.startswith(folder_name):
        print(zip_info.filename)

zip_file.close()

这样,我们就通过zipfile模块成功遍历了ZIP文件中的文件和文件夹。希望这个例子对你理解和使用zipfile模块有所帮助!