使用场景:需要去除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”就可以了。