AI大模型教程
一起来学习

Python轻松搞定压缩文件操作(1分钟教你如何解压有密码的压缩文件)

判断是否为压缩文件

        用is_zipfile(),是压缩文件发回True,不是返回False

import zipfile
print(zipfile.is_zipfile(r"C:Users27194Desktoptesttest.txt"))
print(zipfile.is_zipfile(r"C:Users27194Desktoptest压缩文件(不加密).zip"))

这里第一个返回False,第二返回True

打开压缩文件

zipfile()函数

import zipfile
z=zipfile.ZipFile(r"C:Users27194Desktoptest压缩文件(不加密).zip",mode="r")
print(z.namelist())

输出文件名[‘test.txt’]的列表

解压文件

密码

        用extract()对应压缩文件名,然后就可以解压了。然后会在同目录下生成一个解压后的文件。

import zipfile
z=zipfile.ZipFile(r"C:Users27194Desktoptest压缩文件(加密).zip",mode="r")
for i in z.namelist():
    z.extract(i)

有密码

        但是当我们解压一些压缩文件时,例如这个。会有密码保护,那该怎么解压呢?

这个时候我们可以做一个暴力破解的方法来破解密码(仅作教学)

import zipfile
z=zipfile.ZipFile(r"C:Users27194Desktoptest压缩文件(加密).zip",mode="r")

for i in range(0, 1000000000):
    for j in z.namelist():
        try:
            z.extract(j, path=None, pwd=str(i).encode('utf-8'))
            print(f"密码正确: {i}")
            break
        except:
            continue

这样在我们就可以破解了,平时常见10位数以下的半个小时基本上就能破解出来了。

压缩文件

        使用压缩对象.write(文件名称,压缩文件名称,压缩类型,压缩机别)

import zipfile
z=zipfile.ZipFile(r"D:培训压缩文件test.zip",'w')
z.write("test.txt")
z.close()

这样就可以创建一个压缩文件了。

获取压缩文件信息的方法

        在Python中,可以使用zipfile模块来获取ZIP压缩文件的信息,或使用tarfile模块处理TAR文件。以下分别介绍这两种方法。

使用zipfile模块获取ZIP文件信息
import zipfile

# 打开ZIP文件
with zipfile.ZipFile('example.zip', 'r') as zip_ref:
    # 获取文件列表
    file_list = zip_ref.namelist()
    print("ZIP文件内容:", file_list)
    
    # 获取单个文件的详细信息
    for file_info in zip_ref.infolist():
        print(f"文件名: {file_info.filename}")
        print(f"文件大小: {file_info.file_size} 字节")
        print(f"压缩后大小: {file_info.compress_size} 字节")
        print(f"压缩方式: {file_info.compress_type}")
        print(f"修改时间: {file_info.date_time}")
使用tarfile模块获取TAR文件信息
import tarfile

# 打开TAR文件
with tarfile.open('example.tar.gz', 'r:gz') as tar_ref:
    # 获取文件列表
    file_list = tar_ref.getnames()
    print("TAR文件内容:", file_list)
    
    # 获取单个文件的详细信息
    for file_info in tar_ref.getmembers():
        print(f"文件名: {file_info.name}")
        print(f"文件大小: {file_info.size} 字节")
        print(f"修改时间: {file_info.mtime}")
        print(f"文件类型: {file_info.type}")
检查文件是否为压缩文件

可以通过文件扩展名或尝试打开文件来判断是否为有效的压缩文件。

def is_zip_file(file_path):
    try:
        with zipfile.ZipFile(file_path, 'r') as zip_ref:
            return zip_ref.testzip() is None
    except:
        return False

def is_tar_file(file_path):
    try:
        with tarfile.open(file_path, 'r:*') as tar_ref:
            return True
    except:
        return False
获取压缩文件中的特定文件内容
# 从ZIP文件中读取特定文件内容
with zipfile.ZipFile('example.zip', 'r') as zip_ref:
    with zip_ref.open('target_file.txt') as file:
        content = file.read().decode('utf-8')
        print(content)
注意事项
  • 处理压缩文件时需确保文件路径正确且文件可访问
  • 对于加密的压缩文件,需要提供密码才能访问内容
  • 处理大型压缩文件时,注意内存使用情况

文章来源于互联网:Python轻松搞定压缩文件操作(1分钟教你如何解压有密码的压缩文件)

相关推荐: 【AIGC】优化长提示词Prompt:提升ChatGPT输出内容的准确性与实用性

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | ChatGPT 💯前言 在使用ChatGPT进行内容生成时,如何优化长提示词是一个关键问题。相较于短提示词,长提示词往往能更好地引导生成内容,带来更加丰富和精准的结果。然而,长提示词也可能带来一些挑…

赞(0)
未经允许不得转载:5bei.cn大模型教程网 » Python轻松搞定压缩文件操作(1分钟教你如何解压有密码的压缩文件)
分享到: 更多 (0)

AI大模型,我们的未来

小欢软考联系我们