Home >  > 分割文件的源码

分割文件的源码

0

可以将一个大的txt文件分割成N个txt文件,可以自己设定每个文件的行数,非常实用。

源码如下:

1#coding:utf-8
2#将大文本文件分割成多个小文本文件
3import os
4 
5sourceFileName = "test.txt" #定义要分割的文件
6def cutFile():
7    print u"正在读取文件..."
8    sourceFileData = open(sourceFileName,'r')
9    ListOfLine = sourceFileData.read().splitlines()#将读取的文件内容按行分割,然后存到一个列表中
10    n = len(ListOfLine)
11    print u"文件共有"+str(n)+u"行"
12    print u"请输入需要将文件分割的个数:"
13    m = int(raw_input("")) #定义分割的文件个数
14    p = n/m + 1
15    print u"需要将文件分成"+str(m)+u"个子文件"
16    print u"每个文件最多有"+str(p)+u"行"
17    print u"开始进行分割···"
18    for i in range(m):
19        print u"正在生成第"+str(i+1)+u"个子文件"
20        destFileName = os.path.splitext(sourceFileName)[0]+"_part"+str(i)+".txt" #定义分割后新生成的文件
21        destFileData = open(destFileName,"w")
22        if(i==m-1):
23            for line in ListOfLine[i*p:]:
24                destFileData.write(line+'\n')
25        else:
26            for line in ListOfLine[i*p:(i+1)*p]:
27                destFileData.write(line+'\n')
28        destFileData.close()
29    print u"分割完成"
30 
31cutFile()

运行展示:

Snap83

自己作特别用途的版本:

1<pre>#coding:utf-8
2#将大文本文件分割成多个小文本文件
3import os
4import re
5 
6pattern = '[1-9][0-9]{4,}'
7sourceFileName = "test.txt" #定义要分割的文件
8def cutFile():
9    print u"正在读取文件..."
10    sourceFileData = open(sourceFileName,'r')
11    ListOfLine = sourceFileData.read().splitlines()#将读取的文件内容按行分割,然后存到一个列表中
12    n = len(ListOfLine)
13    print u"文件共有"+str(n)+u"行"
14    print u"请输入需要将文件分割的个数:"
15    m = int(raw_input("")) #定义分割的文件个数
16    p = n/m + 1
17    print u"需要将文件分成"+str(m)+u"个子文件"
18    print u"每个文件最多有"+str(p)+u"行"
19    print u"开始进行分割···"
20    for i in range(m):
21        print u"正在生成第"+str(i+1)+u"个子文件"
22        destFileName = os.path.splitext(sourceFileName)[0]+"_part"+str(i)+".txt" #定义分割后新生成的文件
23        destFileData = open(destFileName,"w")
24        if(i==m-1):
25            for line in ListOfLine[i*p:]:
26                line = re.sub(pattern, "说",line );
27                destFileData.write(line+'\n')
28        else:
29            for line in ListOfLine[i*p:(i+1)*p]:
30                line = re.sub(pattern, "说", line);
31                destFileData.write(line+'\n')
32        destFileData.close()
33    print u"分割完成"
34 
35cutFile()</pre>

暧昧帖

本文暂无标签

发表评论

*

*