首页 > 解决方案 > 有没有办法更改在 Python 中使用 zipfile 提取的文件的名称?

问题描述

我正在尝试从 zip 文件夹中提取 csv 文件并选择其名称,因为它保存在新目录中。此代码可以很好地提取文件:

import zipfile
with zipfile.ZipFile(f'C:\\Users\\user\\Downloads\\{nombre_solar_zip}', 'r') as zip_ref:
    zip_ref.extractall('C:\\Users\\user\\\\work')

但是 zip 文件夹中的文件名不断变化,所以我想更改名称以便阅读。有没有办法做到这一点?

标签: pythonzipzipfile

解决方案


您可以使用 迭代成员,ZipFile.infolist然后使用 . 打开每个成员、读取和写入您选择的文件ZipFile.open

总之,它会是这样的:

import zipfile
with zipfile.ZipFile("/path/to/my-file.zip") as zip
    for member in zip.infolist():
        with zip.open(member, "r") as infile, open("new-file-name", "wb") as outfile:
            while True:
                data = infile.read(chunk_size)
                if not data:
                    break
                outfile.write(data)

推荐阅读