在文件中的行中查找单词并将其拆分为两行

时间:2014-05-14 06:49:52

标签: python list file

我的输入文件(i.txt)如下:

പ്രധാനമന്ത്രി മന്‍മോഹന്‍സിംഗ്  നാട്ടില്‍ എത്തി  .  
അദ്ദേഹം മലയാളി അല്ല  കാരണം അദ്ദേഹത്തെ പറ്റി പറയാന്‍  വാക്കുകല്ളില്ല . 

我的连词在列表中:

connectives=['കാരണം','അതുകൊണ്ട്‌ ','പക്ഷേ','അതിനാല്‍','എങ്കിലും','എന്നാലും','എങ്കില്‍','എങ്കില്‍പോലും',
'എന്നതുകൊണ്ട്‌ ','എന്ന']  

我想要的输出是(outputfile.txt):

പ്രധാനമന്ത്രി മന്‍മോഹന്‍സിംഗ്  നാട്ടില്‍ എത്തി  .  
അദ്ദേഹം മലയാളി അല്ല . 
അദ്ദേഹത്തെ പറ്റി പറയാന്‍  വാക്കുകല്ളില്ല . 

如果有2个连接词按此分开。我的代码是:

fr = codecs.open('i.txt', encoding='utf-8') 
fw = codecs.open('outputfile.txt', 'w')
for line in fr:
    line_data=line.split()
for x, e in list(enumerate(line_data)):
    if e in connectives:
        line_data[x]='.' 

代码未完成。

1 个答案:

答案 0 :(得分:0)

我认为你只是有一些缩进问题。我还在连接词中添加了u''以指定unicode,因为我使用的是python 2.7。

如果您希望将现有行拆分为两行,您可能需要使用.添加回车符...

这是一个开始(但不是最终):

import codecs

connectives=[u'കാരണം',u'അതുകൊണ്ട്‌ ',u'പക്ഷേ',u'അതിനാല്‍',u'എങ്കിലും',u'എന്നാലും',u'എങ്കില്‍',u'എങ്കില്‍പോലും',
u'എന്നതുകൊണ്ട്‌ ',u'എന്ന']  

fr = codecs.open('i.txt', encoding='utf-8') 
# fw = codecs.open('outputfile.txt', 'w')
for line in fr:
    line_data=line.split()
    for x, e in list(enumerate(line_data)):
        if e in connectives:
            line_data[x]='.\n'

    print " ".join(line_data).lstrip()

生成此输出(额外空格,因为拆分位于一行的中间)。

പ്രധാനമന്ത്രി മന്‍മോഹന്‍സിംഗ് നാട്ടില്‍ എത്തി .
അദ്ദേഹം മലയാളി അല്ല .
 അദ്ദേഹത്തെ പറ്റി പറയാന്‍ വാക്കുകല്ളില്ല .