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

2024-09-29 08:29:03 浏览数 (1)

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


这个需求,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中自有的文件读写功能;

0 人点赞