首页 > 编程语言 >一个 python 拆解文本文件的工具

一个 python 拆解文本文件的工具

时间:2024-01-10 18:01:10浏览次数:36  
标签:python filename sys 拆解 文本文件 print logfile os size

背景

你是否有遇到过文本文档太大无法打开的情况?比如说压测了好几天,生成了一个十几 G 的日志文件。

下面这个脚本可以帮助你将一个大文件分解成一个小文件。

假设文件名位:splitfile.py

使用方法位:python splitfile.py log 20

该文件将会将 log 文件拆分成 log.0 log.1 log.2 ... log.19 等 20 个文件

源码

import os
import sys

if len( sys.argv ) < 3:
    print( "Please specify file and how many you want split" );
    print( "python %s log 10"%(sys.argv[0]) );
    sys.exit(-1)

logfile = sys.argv[1]
cutnbs = int(sys.argv[2])

if os.path.isfile( logfile ) == False:
    print( "%s is not file"%( logfile ) );
    exit(-1)

f_stat = os.stat( logfile )
print(f_stat)

f_basename = os.path.basename( logfile )
print(f_basename)

f_size = f_stat.st_size
sub_f_size = f_size / cutnbs + cutnbs

# print( f_size )

infd = open( logfile, 'rb' );

for i in range( cutnbs ):
    size_count  = 0
    o_filename = "./%s.%d"%( f_basename, i )
    print( "out filename: %s"%( o_filename ) )
    print( "start dumpL %s"%( o_filename ) )

    if os.path.isfile( o_filename ):
        os.remove( o_filename )
    o_fd = open( o_filename, 'xb' )

    while size_count < sub_f_size:
        line = infd.read( 1024*1024 )
        if len(line) == 0:
            break
        o_fd.write( line )
        size_count += len( line )

    o_fd.close()


infd.close()
exit(0)

标签:python,filename,sys,拆解,文本文件,print,logfile,os,size
From: https://www.cnblogs.com/mojies/p/17957046

相关文章

  • 张正友棋盘代码-python
    具体实现方案:棋盘是一块由黑白方块间隔组成的标定板,我们用它来作为相机标定的标定物(从真实世界映射到数字图像内的对象)。之所以我们用棋盘作为标定物是因为平面棋盘模式更容易处理(相对于复杂的三维物体),但与此同时,二维物体相对于三维物体会缺少一部分信息,于是我们会多次改变棋盘的......
  • python3可视化之matplotlib库
     importmatplotlib.pyplotaspltimportnumpyasnpN=8i=0#指定一个画板fig=plt.figure(figsize=(20,5*N))x=np.arange(0,3*np.pi,0.1)y_sin=np.sin(x)y_cos=np.cos(x)i+=1plt.subplot(N,1,i)plt.plot(x,y_sin)plt.plot(x,y_cos)plt......
  • python3控制结构
    选择n=10i=2ifn==i:print("equal")elifn<i:print("lower")else:print("higher")遍历whilei<n:i+=1print(i)else:print("done")foriinrange(0,5):print(i)else:......
  • python3图片处理之pillow库
    pillow库简单使用fromPILimportImage,ImageFilter#pillow库img=Image.open("../../files/1.jpg")#通道print(img.getbands())#('R','G','B')print(img.getbbox())#(0,0,690,517)#图片的尺寸print(img.size)#(690......
  • Python对于for循环,可以用range()来控制循环次数,写法:range(次数)
    '''for循环次数循环的是列表、集合、元组、字典、字符串,这些类型中保存了几个数据值就循环几次'''#Python对于for循环,可以用range()来控制循环次数#写法:range(次数)name='Rocco'#设置变量name为字符串类型,值为'Rocco'ps='123456'#设置变量ps为字符串类型,值为'123456'......
  • Python中的迭代器和生成器是什么
    在Python中,迭代器和生成器是两个非常重要的概念。它们可以帮助我们更加高效地处理数据,并且在处理大数据集时具有很好的性能表现。本文将介绍Python中的迭代器和生成器,并详细讲解它们的用法和实现原理。迭代器什么是迭代器在Python中,迭代器(Iterator)是一种对象,它可以实现迭代器......
  • 在Python中如何使用列表推导式来创建一个列表
    在Python中,列表推导式(Listcomprehensions)是一种简洁、灵活、高效的语法,用于快速创建一个新的列表。它可以使代码更加简洁易读,并且比使用循环和条件语句手动构建列表要更加高效。列表推导式的基本语法如下:new_list=[expressionforiteminiterableifcondition]其中,`expressio......
  • 如何使用Python装饰器来修改函数
    在Python中,装饰器是一种强大的工具,它可以用来修改函数的行为,而无须对函数本身进行修改。装饰器提供了一种简洁、灵活的方式来扩展函数的功能,使代码更加模块化、可复用,并且能够减少重复的代码。装饰器的基本概念是将一个函数作为参数传递给另一个函数,并返回一个新的函数。这个新的函......
  • Python中的元类和元编程是什么
    在Python中,元类和元编程是一些高级概念,能够帮助我们更深入地理解和扩展语言的特性。通过元类和元编程,我们可以在运行时动态地创建类、修改类和实例化对象,从而使我们能够更加灵活地编写代码。1.元类是什么?在Python中,类是对象的模板,用于创建对象。而元类则是用于创建类的类。也就是说......
  • Python中的异常处理机制是什么
    在Python编程中,异常处理机制是一种重要的机制,用于捕获和处理程序中出现的异常情况。通过合理地使用异常处理,我们可以使程序更加健壮、稳定,并提供更好的用户体验。1.异常是什么?在编程中,异常是指在程序运行过程中发生的错误或异常情况。例如,除以零、索引越界、文件不存在等都属于异常......