python 去除txt文本中的空格、数字、特定字母等

使用场景:需要去除txt文本中的空格、数字、特定字母等。

需要修改的txt文本叫做:train.txt
修改之后保存成:train_output.txt

# ecoding=utf-8
ifn = r"train.txt"
ofn = r"train_output.txt"

infile = open(ifn,'r')
outfile = open(ofn,'w') # 在使用write()函数的时候,如果文件打开模式带 b,那写入文件内容时,str (参数)要用 encode 方法转为 bytes 形式,否则报错。

for eachline in infile.readlines():
    #去掉文本行里面的空格、\t、数字(其他有要去除的也可以放到' \t1234567890'里面)
    lines = filter(lambda ch: ch not in ' \t1234567890', eachline) 
    outfile.write(lines) # 写入train_output.txt(此处是一股脑的全写进去,并没有做任何的分行处理)

infile.close()
outfile.close()

之前有小朋友反应会报出这样的错误:

TypeError: a bytes-like object is required, not 'filter'.

原因:在使用write()函数的时候,如果文件打开模式带 b,那写入文件内容时,str (参数)要用 encode 方法转为 bytes 形式,否则报错。打开模式写“w”就可以了。


版权声明:本文为lanyuelvyun原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。