作者:小郭
源自:快学Python
今天师兄扔给我一个txt,说:“来,小郭,你把这个文本处理一下,按照指定字符分割成多个文本。”这下可难倒我了,不过好在功夫不负有心人,几经周折之后把它完成了。
先来看一下处理前的文本
处理后的文本
每个文本中的内容格式如下:
接下来详细介绍一下处理过程
inputfile = input('Input SourcFile:') ##输入源文件,如A.txt
fp = open(inputfile, 'r',encoding="UTF-8")
number =[] #用来存放指定分割字符所在行数
lineNumber = 1
keyword = input('Slice Keyword:') ##输入你要切分的关键字
outfilename = input('Outfilename:')##输出文件名,如out.txt则写out即可,后续输出的文件是out0.txt,out1.txt...
count = 0 #记录文件所有行数
for index, line in enumerate(fp):
count += 1
m=re.search(keyword,line)
print(m)
if m is not None:
number.append(index)
print(number)
print(count)
re.search
针对文本的中用到的search函数测试结果如下:
for i in range(0,len(number)-1):
start = number[i]
print(start)
end = number[i+1]
print(end)
destLines = linecache.getlines(inputfile)[start+1:end] #将行号为start+1到end-1的文件内容截取出来
fp_w = open(outfilename + str(i)+'.txt','w',encoding="utf-8") #将截取出的内容保存在输出文件中
for key in destLines:
fp_w.write(key)
fp_w.close()
在编写代码的过程中文本编码格式老报错,格式费了半天劲才搞懂是怎么回事,记得文本txt的编码格式是UTF-8才能被顺利读取。文本的切分在NLP中数据预处理模块经常会用到,希望这篇文章对你有所帮助!加油,奥里给!