大文件拆分

fp=‘e:\\logtest\u_ex160314.log‘ #原文件名称
fname=‘e:\\logtest\u_ex160314‘ #新文件名称
fsize = 1024*1024 #1MB,定义每个新文件的大小

num = 1 #新文件名后+1
sum = 0 #每个新文件的当前大小
with open(fp,‘rb‘) as fo:
    for line in fo:
        sum +=len(line)
        if sum >= fsize: #如果每个新文件大小超过了定义的大小,则打开一个新文件写入后续内容
            num +=1
            sum = 0
        fwname= fname + ‘_‘+ str(num) + ‘.log‘
        with open(fwname,‘ab‘) as fw:
            fw.write(line)
时间: 2024-11-05 17:19:25

大文件拆分的相关文章

大文件拆分问题的java实践(附源码)

引子 大文件拆分问题涉及到io处理.并发编程.生产者/消费者模式的理解,是一个很好的综合应用场景,为此,花点时间做一些实践,对相关的知识做一次梳理和集成,总结一些共性的处理方案和思路,以供后续工作中借鉴. 本文将尝试由浅入深的方式表述大文件拆分的问题及不同解决方案,给出的方案不一定是最优解,也并非线上环境论证过的靠谱方式,目的只是在于通过该问题融会贯通io.多线程等基础知识理论.生产环境请慎用. 本文不会逐行讲解代码实现,而注重在方案设计及思路探讨上,但会在文末附上源码demo git地址. 问

sql大文件拆分导入

一.文件压缩与解压 sql文件比较大,通常会压缩至大概十分之一大小. 1.压缩文件 非打包 tar -czvf test.tar.gz test.sql //压缩 test.sql文件为test.tar.gz(会保留原文件) tar -czvf test.tar.gz test/ //压缩目录下的文件 (不过目录的压缩效果就一般了) 2.列出压缩文件内容 tar -tzvf test.tar.gz rw-r--r-- root/root 0 2010-05-24 16:51:59 test.sq

拆分大文件的脚本

有时候需要把一个大文件拆分成几个小文件,由于生产系统上没有split程序,因此自己写了两个脚本来实现该功能. 第一个脚本根据行数来拆分: #! /bin/bash #filename my-line-split.sh #usage: my-line-split.sh 行数 bigfile #拆分的文件以bigfile.split.1 bigfile.split.2...命名 split_line=$1 file=$2 total_line=$(wc -l <$file) prefix=$file

如何分发大文件、大文件传输解决方案

随着云计算.大数据技术不断发展,4K 视频.虚拟现实(VR).视频直播等互联网应用领域不断升级更新,企业网.数据中心规模持续扩大,企业拥有的数据急剧增长,海量文件随之产生. 同时,互联网时代,众多行业都面临大型文件传输的问题,速度慢,是否安全,是优先考虑的前提! 一直以来,企业通常使用QQ软件.FTP.网盘或拆分数据.快递硬盘等方式进行海量文件上传和下载. 但是这些方式存在很多弊端,导致企业不能有效利用海量文件: 通常的一些方法: 1.使用QQ等软件直接对传:这种方法在线随时都可以传,比较方便,

split、rar拆分大文件

split拆分大文件 系统默认自带有 # split -b 2048m aa aa_ -b n[bkm]  b代表512b,k代表1KB,m代表1M 后面aa表示指定文件前缀 结果为:aa_aa aa_ab 合并拆分文件: # cat aa_aa aa_ab > aa rar拆分大文件 # apt-get install rar # rar a -v2048m aa.rar aa 结果为:aa.part1.rar aa.part2.rar 合并并解压: # unrar aa.part1.rar

【Linux命令】拆分大文件 split -l xxx split -b xxx

linux主机上,将一个大文件切割成N个小文件 (1)按字节拆分  split -b 1m itable_transfer_145028.138.21.log >>>>split -b 1m itable_transfer_145028.138.21.log --------------------------------------- -rw-rw-r--. 1 billapp billapp 1987501 8月 1 14:49 itable_transfer_145028.1

split分割大文件--包含通过awk按规则分割文件到对应子文件

当对一个大文件进行传输或者分析的时候,一个可以参考的办法是先通过split对文件进行分割,再对每个子文件进行处理,如果需要合并再进行合并. split函数可以按文件大小或者行数来进行分割. -a : 指定后缀长度 -b : 每个文件多少字节,单位可以为k和M -d : 使用数字后缀而不是字母 -l : 指定每个文件的行数,默认1000 例子: 切割一个文件为每个子文件20M大小,-b指定20M大小,filename为文件名,prefix为每个子文件的前缀.后缀通常为aa,ab,ac.... $

Qt写的文件拆分和融合小工具

最近因事物需要,需要将大文件分解为几个小文件,然后就行传输,在接收端需要对接收到的小文件进行融合.因此用Qt写了这个小工具.现在奉献上这个小工具的代码和思路. 我们知道任何文件在计算机上都是二进制数据块,因此只需要使用读写二进制的形式来读取大文件,在将读取的大文件以二进制形式写入小文件,这样就可以将文件拆分了(当然这是非常简单的拆分方法,对有些文件肯定存在错误的,因为本人在这方面的知识很肤浅).同样小文件的融合就是拆分的逆过程. 在读写文件的过程中我使用的是C++标准库ifstream和ofst

PHP读取CSV大文件导入数据库的示例

对于数百万条数据量的CSV文件,文件大小可能达到数百M,如果简单读取的话很可能出现超时或者卡死的现象. 为了成功将CSV文件里的数据导入数据库,分批处理是非常必要的. 下面这个函数是读取CSV文件中指定的某几行数据: /** * csv_get_lines 读取CSV文件中的某几行数据 * @param $csvfile csv文件路径 * @param $lines 读取行数 * @param $offset 起始行数 * @return array * */ function csv_get