日常办公小技巧!利用Python对文件进行批量压缩和解压!(1)

在这里插入图片描述

为了不让大家孤单学习,我特地创了个群,点我直接加入就好了,没事大家一起吹吹牛逼,互相学习交流~点我快速加入

包括这些东西都直接打包好了,进群直接领取~

Python 环境、pycharm编辑器/永久激活/翻译插件

python 零基础视频教程

Python 界面开发实战教程

Python 爬虫实战教程

Python 数据分析实战教程

python 游戏开发实战教程

Python 电子书100本

Python 学习路线规划

都可以在群里免费领取

Python 相关问题可解答

Python 相关外包需求可发布

Python 相关招聘需求可发布

在这里插入图片描述

好了不多哔哔,我们开始今天的正文~

通常我们用的压缩文件格式有:

  1. rar:Windows 环境下用的比较多的压缩,比较著名的GUI工具是winrar tar: Linux系统下的打包工具,只打包,不压缩;

  2. gz:即gzip,通常只能压缩一个文件。与tar结合起来就可以实现先打包,再压缩;

  3. tgz:即gz。先用tar打包,然后再用gz压缩得到的文件;

  4. zip:不同于gzip,虽然使用相似的算法,可以打包压缩多个文件,不过分别压缩文件,压缩率低于tar;

  5. 7z:7zip压缩软件支持的格式,压缩效率较高;

当然除了使用Python外,你还可以选择使用压缩解压缩软件或命令手动进行处理。

zip文件

zipfile是Python里用来做zip格式编码的压缩和解压缩的module,zipfile里有两个非常重要的class:ZipFile和ZipInfo。ZipFile是主要的类,用来创建和读取zip文件,而ZipInfo是存储的zip文件的每个文件的信息。

示例代码:

在这里插入图片描述

tar.gz文件

tarfile 模块可以用来读写 tar 归档,包括使用 gzip, bz2 和 lzma 压缩的归档。在使用tarfile是必须了解模式:

mode 必须是 ‘filemode[:compression]’ 形式的字符串,其默认值为 ‘r’。 以下是模式组合的完整列表:

模式 动作

针对特殊的目的,还存在第二种 mode 格式: ‘filemode|[compression]’。 tarfile.open() 将返回一个将其数据作为数据块流来处理的 TarFile 对象:

模式 动作

1

代码示例:

rar文件

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

端开发知识点,真正体系化!**

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要对分段压缩文件进行解压缩,你可以使用以下步骤: 1. 将所有分段文件(通常以数字结尾)下载到同一目录中。 2. 在 Python 中导入 `gzip` 模块。 3. 使用 `open` 函数打开第一个分段文件,并使用 `gzip.GzipFile` 将其解压缩到新文件中。 4. 通过循环迭代每个分段文件,将其追加到新文件中。 5. 关闭所有文件。 下面是一个示例代码,可以解压缩分段压缩文件: ```python import gzip # 设置输入和输出文件名 input_filename = "compressed_file.gz" output_filename = "uncompressed_file.txt" # 打开第一个分段文件,并将其解压缩到新文件中 with open(input_filename, 'rb') as f_in, gzip.GzipFile(fileobj=f_in) as decompressed_file, open(output_filename, 'wb') as f_out: f_out.write(decompressed_file.read()) # 循环迭代每个分段文件,将其追加到新文件中 index = 1 while True: filename = f"{input_filename}.{index}" try: with open(filename, 'rb') as f_in, gzip.GzipFile(fileobj=f_in) as decompressed_file: f_out.write(decompressed_file.read()) index += 1 except FileNotFoundError: break # 关闭所有文件 f_in.close() f_out.close() ``` 这段代码假设你的分段压缩文件以 `.gz` 结尾,并且每个分段文件都以数字结尾(例如 `compressed_file.gz.1`,`compressed_file.gz.2` 等)。如果你的分段文件命名方式不同,你需要根据自己的情况进行修改。 ### 回答2: Python提供了多种方式来解压分段的压缩文件。 一种常用的方式是使用zipfile模块。可以使用ZipFile类的extractall方法来解压整个压缩文件,或者使用extract方法来解压指定的文件。下面是一个示例代码: ```python import zipfile # 定义分段压缩文件文件名列表 file_list = ['archive.part1.zip', 'archive.part2.zip', 'archive.part3.zip'] # 创建ZipFile对象 zip_obj = zipfile.ZipFile('archive.zip', 'r') # 遍历分段文件解压 for file_name in file_list: # 读取分段压缩文件内容 content = zip_obj.read(file_name) # 写入分段文件内容到新的文件中 with open(file_name, 'wb') as output_file: output_file.write(content) # 解压新的文件 with zipfile.ZipFile(file_name, 'r') as sub_zip_obj: sub_zip_obj.extractall() # 关闭ZipFile对象 zip_obj.close() ``` 以上代码首先创建了一个ZipFile对象,并遍历分段压缩文件,将每个分段文件的内容写入新的文件中,再使用ZipFile对象解压新的文件。 另一种方式是使用shutil模块的unpack_archive函数。该函数可以直接解压缩包括分段文件压缩文件。下面是一个示例代码: ```python import shutil # 定义分段压缩文件文件名列表 file_list = ['archive.part1.zip', 'archive.part2.zip', 'archive.part3.zip'] # 解压分段文件 shutil.unpack_archive('archive.zip', 'extracted_files') # 遍历分段压缩文件解压到指定目录 for file_name in file_list: shutil.unpack_archive(file_name, 'extracted_files') ``` 以上代码首先使用unpack_archive函数解压整个压缩文件,然后遍历分段文件,使用unpack_archive函数将每个分段文件解压到指定目录。 以上两种方式都可以解压分段的压缩文件,选择哪种方式可以根据具体情况和需求来决定。 ### 回答3: Python提供了zipfile模块来对分段的压缩文件进行解压操作。以下是一个示例代码: ```python import zipfile # 分段压缩文件的路径列表 segments = ['file_part1.zip', 'file_part2.zip', 'file_part3.zip'] # 创建一个ZipFile对象并指定解压后的目标文件夹路径 with zipfile.ZipFile('unzipped_files', 'w') as zip_file: # 依次解压每个分段压缩文件 for segment in segments: # 打开分段压缩文件 with zipfile.ZipFile(segment, 'r') as segment_zip: # 解压分段压缩文件中的所有文件到目标文件夹 segment_zip.extractall('unzipped_files') print("文件解压完成!") ``` 首先,需要将分段的压缩文件路径列表赋值给segments。然后,使用zipfile模块的ZipFile类创建一个ZipFile对象,指定解压后的目标文件夹路径(这里为'unzipped_files')。接下来,使用for循环遍历每个分段压缩文件的路径,打开该文件并创建一个ZipFile对象(命名为segment_zip)。最后,使用extractall方法将分段压缩文件中的所有文件解压到目标文件夹中。 运行该代码后,就可以将所有分段的压缩文件解压为原始文件,并保存在'unzipped_files'文件夹中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值