Python文本预处理(文件合并)
18 Jan 2018 在自然语言处理过程中,我们经常会遇到大量的文本文件,往往我们需要对这些文本进行预处理后才能使用,因此这里教大家针对文本文件的三种常见场景及预处理方法(文本合并、文本拆分和文本剔除)。
第一种方法是文件合并,即存在多个文本文件,如何将这些文件合成一个,便于后续知识标注人员对文本进行批量检测等。具体步骤如下:在D盘新建两个空白文件夹test和test01,并在test文件夹中放入原始语料a1.txt,a2.txt,a3.txt
Python文本合并程序如下:
# 文件合并(方法1)
#输入每个文件的绝对路径
list = ["D:\\test\\a1.txt","D:\\test\\a2.txt","D:\\test\\a3.txt"]
# 新建一个空白的txt文件,作为读入框
ofile = open("D:\\test01\\merge.txt","w")
for i in list:
ofile.write( i + "\n") # 每个文本开头输入文件名
for txt in open(i,"r",encoding="utf-8"):
ofile.write(txt) # 将文本合并到新的空白文件中
ofile.close()
# 由于方法1需要输入每个文件的绝对路径,我们需要更智能的方法,
# 遍历某个文件夹中所有的文本,然后进行合并
# 文件合并(方法2)
import os
rootdir = 'D:\\test' #输入文件的路径
list = os.listdir(rootdir) #遍历test文件夹所有文件
ofile = open("D:\\test01\\d.txt","w")
for i in list:
ofile.write( i + "\n")
i = rootdir+ os.path.sep + i #目录名+ 路径切割符+ 文件名
for txt in open(i,"r",encoding = "utf-8"):
ofile.write(txt)
ofile.close()
# 利用os包的时候,比较高级的方法是用os.walk
# 文件合并(方法3)
import os
rootdir = 'D:\\test'
ofile = open("D:\\test01\\e.txt","w")
#root表示文件夹路径,dirs次级目录路径,files文件名
for root, dirs, files in os.walk(rootdir):
for i in files:
ofile.write(i + "\n")
i = root + os.path.sep + i
for txt in open(i,"r",encoding = "utf-8"):
ofile.write(txt)
ofile.close()
分类: 自然语言处理