前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python知识点100篇系列(14)-分割大文件然后在合并

python知识点100篇系列(14)-分割大文件然后在合并

原创
作者头像
JQ实验室
发布2024-09-29 08:29:03
1150
发布2024-09-29 08:29:03
举报
文章被收录于专栏:实用技术

实际工作中,有时候需要通过邮箱发送文件,但是邮箱对文件大小是有限制的,所以在发送大文件的时候,需要将大文件分割成多个小文件单独发送,接收方接收后再合并;就能实现大文件的传输,当然也适用于网络不佳的情况下,发送小文件;


这个需求,python就能干

用的了Python中 的文件读写功能! 分割大文件: 设置每个文件的大小,然后读取指定大小的字节就写入一个新文件,最终生成多个小文件; 合并多个小文件:接收端依次读取小文件,把读取到的字节按序写入一个文件,就可以完成合并。

大致的思路就是上面,不过python中现成的第三方库可以实现以上功能,不用自己写了;

实现文件分割合并的第三方库filesplit

先安装模块,安装方式推荐有很多种,推荐使用pip;

pip 是 Python 的包安装程序。其实,pip 就是 Python 标准库(The Python Standard Library)中的一个包,只是这个包比较特殊,用它可以来管理 Python 标准库(The Python Standard Library)中其他的包。pip 是一个命令行程序。 安装 pip 后,会向系统添加一个 pip 命令,该命令可以从命令提示符运行。

pip安装成功后,执行以下命令安装filesplit

pip install filesplit

在这里插入图片描述
在这里插入图片描述

如图提示,表示安装成功;

使用filesplit:

使用filesplit分割文件,只需要三环代码即可实现:

首先引入Split模块:传入两个参数,源文件,分割后小文件存放的目录;设置一下每个文件大小;

伪代码如下:

代码语言:python
代码运行次数:0
复制
def splitFile(bigfile,output):
    from filesplit.split import Split
    split = Split(bigfile, output)
    split.bysize(size = 1024*1000*10) # 文件最多 10MB

使用filesplit合并文件夹里的小文件进行合并,要求文件夹内必须有 manifest 文件;有一定的格式要求; 具体可参考源码;

使用python的文件读写功能实现:

如果不想使用第三方库,也可以自己实现,也比较简单;完全按照以上的思路来做即可;以合并小文件功能为例:

实现功能的伪代码如下:

代码语言:python
代码运行次数:0
复制
def hebing(bigfile,total_parts):
    '''
    合并小文件
    '''
    with open(bigfile,"wb") as writer:
        for part in range(total_parts):
            with open(f"{bigfile}_{part}", "rb") as reader:
                writer.write(reader.read())
总结:

一个分割合并文件的功能需求使用python实现;第三方库虽然简单,但是还是建议使用python中自有的文件读写功能;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 总结:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档