Python--我一般都用这个模块压缩文件

简介: Python--我一般都用这个模块压缩文件

打包成压缩文件很多时候都能用上,也包括了自动化中的部分应用。例如,将测试报告打包发送。

本章就来介绍其中一个模块,可以用于结合上一章的内容结合使用。

from zipfile import ZipFile

ZipFile是zipfile的一个方法。

提取zip文件

from zipfile import ZipFile
file = r'three_\notes\zips.zip'
with ZipFile(file,'r') as zip:
    zip.printdir()
    print("~" * 30)
    zip.extractall()
    print("over")

需要提前准备一个.zip压缩文件。最好不要带中文,可能会文件名造成乱码。

File Name                                             Modified             Size
zips/headset.png                               2022-12-03 10:34:14         7532
zips/mouse.png                                 2022-12-03 10:34:14         5439
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
over

**printdir()**方法打印存档的目录。

**extractall()**方法会将zip文件的所有内容提取到当前工作目录中。

**extract()**方法来提取任何文件,方法是在 zip 文件中指定其路径。

zip.extract('zips/headset.png')

如果你想读取一些特定的文件,你可以这样:

data = zip.read(name_of_file_to_read)

写入zip文件

from zipfile import ZipFile
import os
def get_all_file_paths(directory):
    # 将文件写入列表
    file_paths = []
    # 获取指定路径的文件
    for root, directories, files in os.walk(directory):
        for filename in files:
            print(root,files)
            # 路径拼接
            filepath = os.path.join(root, filename)
            file_paths.append(filepath)
    # 返回所有路径
    return file_paths        
def main():
    # 需要压缩的路径
    directory = r'three_\notes\zips'
    # 传入遍历路径
    file_paths = get_all_file_paths(directory)
    # 打印压缩路径的内容
    print('Following files will be zipped:')
    for file_name in file_paths:
        print(file_name)
    # 写入压缩文件
    with ZipFile('my_python_files.zip','w') as zip:
        # 写入每一个文件
        for file in file_paths:
            zip.write(file)
    print('All files zipped successfully!')        
if __name__ == "__main__":
    main()

获取zip文件信息

from zipfile import ZipFile
import datetime
# 路径
file_name = r"three_\notes\zips.zip"
# 打开并读取其中的内容信息
with ZipFile(file_name, 'r') as zip:
    for info in zip.infolist():
            print(info.filename)
            print('\tModified:\t' + str(datetime.datetime(*info.date_time)))
            print('\tSystem:\t\t' + str(info.create_system) + '(0 = Windows, 3 = Unix)')
            print('\tZIP version:\t' + str(info.create_version))
            print('\tCompressed:\t' + str(info.compress_size) + ' bytes')
            print('\tUncompressed:\t' + str(info.file_size) + ' bytes')

以上就是该模块的大致用法,当然也有很多类似的模块,只要好用都可以。

目录
相关文章
|
2月前
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
57 4
|
21天前
|
Python
Python Internet 模块
Python Internet 模块。
118 74
|
2月前
|
算法 数据安全/隐私保护 开发者
马特赛特旋转算法:Python的随机模块背后的力量
马特赛特旋转算法是Python `random`模块的核心,由松本真和西村拓士于1997年提出。它基于线性反馈移位寄存器,具有超长周期和高维均匀性,适用于模拟、密码学等领域。Python中通过设置种子值初始化状态数组,经状态更新和输出提取生成随机数,代码简单高效。
119 63
|
2月前
|
测试技术 Python
手动解决Python模块和包依赖冲突的具体步骤是什么?
需要注意的是,手动解决依赖冲突可能需要一定的时间和经验,并且需要谨慎操作,避免引入新的问题。在实际操作中,还可以结合使用其他方法,如虚拟环境等,来更好地管理和解决依赖冲突😉。
|
2月前
|
持续交付 Python
如何在Python中自动解决模块和包的依赖冲突?
完全自动解决所有依赖冲突可能并不总是可行,特别是在复杂的项目中。有时候仍然需要人工干预和判断。自动解决的方法主要是提供辅助和便捷,但不能完全替代人工的分析和决策😉。
|
21天前
|
计算机视觉 Python
如何使用Python将TS文件转换为MP4
本文介绍了如何使用Python和FFmpeg将TS文件转换为MP4文件。首先需要安装Python和FFmpeg,然后通过`subprocess`模块调用FFmpeg命令,实现文件格式的转换。代码示例展示了具体的操作步骤,包括检查文件存在性、构建FFmpeg命令和执行转换过程。
38 7
|
2月前
|
Python
Python的模块和包
总之,模块和包是 Python 编程中非常重要的概念,掌握它们可以帮助我们更好地组织和管理代码,提高开发效率和代码质量
45 5
|
2月前
|
数据可视化 Python
如何在Python中解决模块和包的依赖冲突?
解决模块和包的依赖冲突需要综合运用多种方法,并且需要团队成员的共同努力和协作。通过合理的管理和解决冲突,可以提高项目的稳定性和可扩展性
|
5月前
|
SQL JSON 关系型数据库
n种方式教你用python读写excel等数据文件
n种方式教你用python读写excel等数据文件
76 1
|
7月前
|
存储 Python 内存技术
python WAV音频文件处理—— (1)读写WAV文件
python WAV音频文件处理—— (1)读写WAV文件
172 14