判断是否为压缩文件
用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进行内容生成时,如何优化长提示词是一个关键问题。相较于短提示词,长提示词往往能更好地引导生成内容,带来更加丰富和精准的结果。然而,长提示词也可能带来一些挑…
5bei.cn大模型教程网










