legongju.com
我们一直在努力
2025-01-19 17:03 | 星期天

Python解压zip文件并保留文件属性

要使用Python解压ZIP文件并保留文件属性,可以使用zipfile模块

import zipfile
import os
from datetime import datetime

def zip_info(file_info):
    return {
        'filename': file_info.filename,
        'datetime': datetime.fromtimestamp(file_info.date_time).strftime('%Y-%m-%d %H:%M:%S'),
        'size': file_info.file_size,
        'compression': file_info.compress_size,
        'method': file_info.compress_type
    }

def extract_zip(zip_path, extract_to):
    with zipfile.ZipFile(zip_path, 'r') as zip_ref:
        zip_ref.extractall(extract_to)
        print(f"Extracted {zip_ref.namelist()}")

        extracted_files = []
        for file_info in zip_ref.infolist():
            extracted_file = {
                'filename': file_info.filename,
                'datetime': zip_info(file_info)['datetime'],
                'size': zip_info(file_info)['size'],
                'compression': zip_info(file_info)['compression'],
                'method': zip_info(file_info)['method']
            }
            extracted_files.append(extracted_file)

        return extracted_files

if __name__ == "__main__":
    zip_path = 'example.zip'
    extract_to = 'extracted_files'

    if not os.path.exists(extract_to):
        os.makedirs(extract_to)

    extracted_files = extract_zip(zip_path, extract_to)
    print("Extracted files with attributes:")
    for file in extracted_files:
        print(file)

这个示例中,我们首先定义了一个zip_info函数,它接收一个zipfile.ZipInfo对象并返回一个包含文件属性(如文件名、时间戳、大小、压缩方法和压缩类型)的字典。然后,我们定义了一个extract_zip函数,它接收一个ZIP文件路径和一个解压目标目录。这个函数会解压ZIP文件并将文件保存到目标目录,同时保留文件的属性。

__main__部分,我们指定了ZIP文件的路径和解压目标目录,然后调用extract_zip函数解压文件并打印提取的文件及其属性。

未经允许不得转载 » 本文链接:https://www.legongju.com/article/42515.html

相关推荐

  • Python中os函数重命名文件或目录的步骤

    Python中os函数重命名文件或目录的步骤

    在Python中,可以使用os.rename()函数来重命名文件或目录。下面是重命名文件或目录的步骤: 导入os模块:首先需要导入Python的os模块,这样才能使用os中的相关函...

  • 如何用Python的os函数修改文件权限

    如何用Python的os函数修改文件权限

    要使用Python的os模块来修改文件的权限,可以使用os.chmod()函数。以下是一个示例代码,演示如何使用os.chmod()函数修改文件的权限:
    import os # 文件路径...

  • Python os函数删除文件操作是什么样的

    Python os函数删除文件操作是什么样的

    在Python中,可以使用os模块提供的函数来删除文件。其中,常用的函数是os.remove()函数。该函数接受一个文件路径作为参数,用于删除指定路径的文件。
    示例代...

  • 在Python中利用os函数创建新目录的方法

    在Python中利用os函数创建新目录的方法

    在Python中,可以使用os模块中的os.mkdir()函数来创建新目录。下面是一个简单的示例:
    import os # 指定新目录的路径
    new_dir = 'path/to/new/directo...

  • 如何处理Python解压zip时的错误

    如何处理Python解压zip时的错误

    处理Python解压ZIP文件时可能遇到的错误,可以采用以下几种方法: 使用try-except语句捕获异常: 在解压ZIP文件时,可以使用try-except语句来捕获可能出现的异常...

  • Python中解压zip文件的代码示例

    Python中解压zip文件的代码示例

    在Python中,您可以使用内置的zipfile库来解压ZIP文件
    import zipfile # 指定要解压的ZIP文件路径
    zip_file_path = 'example.zip' # 指定解压后的文件...

  • 使用Python解压大型zip文件技巧

    使用Python解压大型zip文件技巧

    要使用Python解压大型zip文件,可以使用zipfile库和io库 使用with语句打开zip文件,这样可以确保文件在操作完成后正确关闭。
    使用zipfile.ZipFile()函数读取...

  • 如何在Python中调用setup函数

    如何在Python中调用setup函数

    在Python中,setup()函数通常与setuptools库一起使用,用于安装和分发Python模块 首先,确保已经安装了setuptools库。如果尚未安装,可以使用以下命令安装: pip...