Python文本预处理(文件合并)

  在自然语言处理过程中,我们经常会遇到大量的文本文件,往往我们需要对这些文本进行预处理后才能使用,因此这里教大家针对文本文件的三种常见场景及预处理方法(文本合并、文本拆分和文本剔除)。
  第一种方法是文件合并,即存在多个文本文件,如何将这些文件合成一个,便于后续知识标注人员对文本进行批量检测等。具体步骤如下:在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()

分类: 自然语言处理