文件分割,用于将一个文件产生k份文档(仿linux的split,考虑遇到空行再分开)

原创 2012年03月28日 16:13:46
#!/usr/bin/python

import sys,os,commands

if __name__=='__main__':
    if len(sys.argv)==4 and sys.argv[1]=='help':
        print 'usage:*.py file2seg num_file des_folder'
    else:
        #get total line of the train/test file
        shellcmd='wc -l '+sys.argv[1]
        line_no=commands.getstatusoutput(shellcmd)
        line_no=line_no[1][0:line_no[1].index(' ')]

        f=open(sys.argv[1],'r')

        #calculate the num per file(just about)
        per_file_line=int(line_no)/int(sys.argv[2])
        
        print line_no
        print 'per_file_line about:',per_file_line
        
        current_line_no=0

        file_suffix=0
        
        f_new=open(sys.argv[3]+str(file_suffix)+".txt",'w')

        for line in f:
            current_line_no=current_line_no+1

            new_file_suffix=current_line_no/per_file_line

            if new_file_suffix <> file_suffix:#new file part
                #meet the blank line,good split
                if len(line.strip())==0:
                    f_new.close()
                    f_new=open(sys.argv[3]+str(new_file_suffix)+".txt",'w')
                    file_suffix=new_file_suffix
                #else:
                #    while True:#forward till we find a new blank line
                #        print line     

            f_new.write(line)
        f_new.flush()
        f_new.close()

相关文章推荐

Linux系统下使用split命令分割大文件

我想给一个朋友传一个大视频,有几百M,尝试多种传输办法失败后,最后想到的是把视频切开一片片“邮递”过去给他,让它自己组装起来吧。   [root@pps public_rw]# ls -lh Re...

Linux split --分割文件

功能说明:分割文件。   Split:按指定的行数截断文件 格式: split [-n] file [name] 参数说明: -n: 指定截断的每一文件的长度,不指定缺省为1000行 fi...

Linux系统下使用split命令分割大文件

我想给一个朋友传一个大视频,有几百M,尝试多种传输办法失败后,最后想到的是把视频切开一片片“邮递”过去给他,让它自己组装起来吧。   [root@pps public_rw]# ls -lh Re...

linux下使用split 来分割大文件

  平常都是使用ssh来进行远程操作和传输文件 , 这个工具可以很方便的实现我们所需要的功能,一直使用正常,没遇到什么问题,今天因为需要传一个412M的文件 , 无论如何也传不过来, 一直系统报...

Linux大文件分割split和合并cat使用方法

本文主要介绍linux下两个命令:split和cat。其中,相信大家都熟悉cat命令,一般用来查看一个文件的内容,但是它还其它的功能,比如这里要介绍的文件合并功能,它可把多个文件内容合并到一个文件中。...
  • jonbb
  • jonbb
  • 2016年05月09日 11:01
  • 249

linux大文件分割命令split(学习笔记)

0x01 简介 linux Ubuntu 16.04LTS输入split --help输出如下: Usage: split [OPTION]... [FILE [PREFIX]] Output p...
  • bjtbjt
  • bjtbjt
  • 2016年10月17日 17:19
  • 2740

Linux下文件分割与合并:split & cat

Linux下文件分割可以通过split命令来实现,文件合并可以通过cat命令。分割可以指定按行数分割和按大小分割两种模式。Linux下文件合并可以通过cat命令来实现,非常简单。在Linux下用spl...

Linux命令学习之路---文件分割(split)命令

Usage: split [OPTION]... [INPUT [PREFIX]] Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ....

linux split命令参数及用法详解---linux分割文件命令

功能说明:分割文件。 Split:按指定的行数截断文件 格式: split [-n] file [name] 参数说明: -n: 指定截断的每一文件的长度,不指定缺省为1000行 file: 要截断...

linux split命令参数及用法详解---linux分割文件命令

csplit(context split) 功能说明:分割文件。 Split:按指定的行数截断文件 格式: split [-n] file [name] 参数说明: -n: 指定截断的每...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文件分割,用于将一个文件产生k份文档(仿linux的split,考虑遇到空行再分开)
举报原因:
原因补充:

(最多只允许输入30个字)