删除文件中每行的unicode编号

时间:2014-05-06 08:01:00

标签: python unicode

我的文件(outputfile5.txt)包含:(该文件包含所有元素为unicode)

5അവന്‍ --> 1രാമന്‍   
6അവള്‍ക്ക് --> 2സീതയെ   
10അവള്‍ --> 6അവള്‍ക്ക് --> 2സീതയെ   
11അത്‌ --> 7പൂവ്‌   
14അവര്‍ --> 2സീതയെ , 1രാമന്‍   
19അവിടെ --> 16കോട്ടയത്ത്‌   
21അവര്‍ക്ക്‌ --> 2സീതയെ , 1രാമന്‍   
26അവിടെ --> 19അവിടെ --> 16കോട്ടയത്ത്‌   
32അവന്‍ --> 28രാമന്‍   
44അവനെ --> 40ലക്ഷ്മണന്‍   
45അവള്‍ക്ക്‌ --> 41സീതയെ   
48ഈ --> 49വഴ   
51അവര്‍ --> 41സീതയെ , 40ലക്ഷ്മണന്‍   
60അവിടെ --> 55കോട്ടയം   

我需要的输出应保存在另一个文件(result.txt)中,如:

അവന്‍ --> രാമന്‍   
അവള്‍ക്ക് --> സീതയെ   
അവള്‍ --> അവള്‍ക്ക് --> സീതയെ   
അത്‌ --> പൂവ്‌   
അവര്‍ --> സീതയെ , രാമന്‍   
അവിടെ --> കോട്ടയത്ത്‌   
അവര്‍ക്ക്‌ --> സീതയെ , രാമന്‍   
അവിടെ --> അവിടെ --> കോട്ടയത്ത്‌   
അവന്‍ --> രാമന്‍   
അവനെ --> ലക്ഷ്മണന്‍   
അവള്‍ക്ക്‌ --> സീതയെ   
ഈ --> വഴ   
അവര്‍ --> സീതയെ , ലക്ഷ്മണന്‍   
അവിടെ --> കോട്ടയം  

我的代码是:

fq = codecs.open('outputfile5.txt', encoding='utf-8')
lines = fq.readlines()
fq.close()
fa = codecs.open('result.txt', 'w')
for line in lines:
    line1=[]
    line1=line.split()
    for i in line1:
        if u'-->' not in i or u',' not in i:
            s = re.match('([0-9]+)', i).group(1)
            word=i[len(s):]
            fa.write(word.encode('UTF-8'))
        else:
            fa.write(i.encode('UTF-8'))
fa.close()

运行代码时会显示以下错误:

s = re.match('([0-9]+)', i).group(1)
AttributeError: 'NoneType' object has no attribute 'group'  

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

我不确定我是否遗漏了一些明显的东西,但是这样做了你想要的吗?

with open('outputfile5.txt') as input, open('result.txt', 'w') as output:
    for line in input:
        output.write(''.join([c for c in line if not c.isdigit()]))

的Result.txt:

അവന് --> രാമന്   
അവള്ക്ക് --> സീതയെ   
അവള് --> അവള്ക്ക് --> സീതയെ   
അത് --> പൂവ്   
അവര് --> സീതയെ , രാമന്   
അവിടെ --> കോട്ടയത്ത്   
അവര്ക്ക് --> സീതയെ , രാമന്   
അവിടെ --> അവിടെ --> കോട്ടയത്ത്   
അവന് --> രാമന്   
അവനെ --> ലക്ഷ്മണന്   
അവള്ക്ക് --> സീതയെ   
ഈ --> വഴ   
അവര് --> സീതയെ , ലക്ഷ്മണന്   
അവിടെ --> കോട്ടയം  

答案 1 :(得分:0)

你可以简单地这样做

import re  
with open('outputfile5.txt') as inpf, open('result.txt', 'w') as outf:
for line in inpf:
   outf.write(re.sub('\d+', '', line))

答案 2 :(得分:0)

如何直接

with codecs.open('outputfile5.txt', encoding='utf-8') as input:
  with codecs.open('result.txt', 'w', encoding='utf-8') as output:
    for line in input:
      output.write(re.sub(r'[0-9]*', '', line))

溶液?