使用 python 分割大的文本文件

哈是闹眼子 / 2023-08-09 / 原文

在开发过程中会遇到有些大文件,因为比较大,无法打开的情况,这个时候需要进行文件分割,这里使用python进行文件分割,代码如下:

import os
import math
import sys

block_size = int(sys.argv[2])*1024*1024

def split_file(filepath:str, block_size:int):
    filesize = os.path.getsize(filepath)
    blocks = math.ceil(filesize / block_size)
    last_block_size = block_size if filesize % block_size == 0 else filesize % block_size

    with open(filepath, 'rb') as fl:
        for i in range(blocks):
            filename = f'{filepath}.part{i}'
            with open(filename, 'wb') as fw:
                if i != blocks - 1:
                    fw.write(fl.read(block_size))
                else:
                    fw.write(fl.read(last_block_size))

split_file(sys.argv[1], block_size)

  

使用方法为:python split.py  txt 100

其中 split.py 为上述代码的python文件,txt为要分割的文件完整路径+文件名,100为要分割的大小,单位为MB