[英]Find a word in the lines in file and split it into two lines
我的輸入文件(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]='.'
代碼未完成。
我認為您只是有一些縮進問題。 由於我使用的是python 2.7,因此我還向u''
添加了u''
以指定unicode。
您可能需要在加上回車符.
如果您希望將現有的線分為兩行...
這是一個開始(但不是最終的):
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()
生成此輸出(多余的空間,因為拆分位於一行的中間)。
പ്രധാനമന്ത്രി മന്മോഹന്സിംഗ് നാട്ടില് എത്തി .
അദ്ദേഹം മലയാളി അല്ല .
അദ്ദേഹത്തെ പറ്റി പറയാന് വാക്കുകല്ളില്ല .
這是您可以執行的一種方法,一個字一個字地建立一個字符串,並在適當的地方添加.\\n
:
#!/usr/bin/python
# -*- coding: utf-8 -*-
connectives=set(['കാരണം','അതുകൊണ്ട് ','പക്ഷേ','അതിനാല്','എങ്കിലും','എന്നാലും',
'എങ്കില്','എങ്കില്പോലും','എന്നതുകൊണ്ട് ','എന്ന', '.'])
s=""
with open('i.txt') as file:
for line in file:
for word in line.split():
if word in connectives:
s += '.\n'
else:
s += '{} '.format(word)
print s
請注意,我添加了'.'
到connectives
列表的末尾,並使其成為set
。 集合是一種集合類型,可用於快速成員資格測試,例如代碼if word in connectives:
我還決定使用str.format
將word
放入字符串中。 如果願意,可以將word + ' '
更改為此選項。
輸出:
പ്രധാനമന്ത്രി മന്മോഹന്സിംഗ് നാട്ടില് എത്തി .
അദ്ദേഹം മലയാളി അല്ല .
അദ്ദേഹത്തെ പറ്റി പറയാന് വാക്കുകല്ളില്ല .
與其他答案不同,在第一行之后的每一行開始處的前導空格沒有問題。
順便說一句,如果您願意使用列表推導 ,可以將代碼壓縮為:
#!/usr/bin/python
# -*- coding: utf-8 -*-
connectives=set(['കാരണം','അതുകൊണ്ട് ','പക്ഷേ','അതിനാല്','എങ്കിലും','എന്നാലും',
'എങ്കില്','എങ്കില്പോലും','എന്നതുകൊണ്ട് ','എന്ന', '.'])
with open('i.txt') as file:
s = ''.join(['.\n' if word in connectives else '{} '.format(word)
for line in file
for word in line.split()])
print s
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.