2017-11-05 8 views
0

私はpython2.7でurduのテキストを使って作業しています。私がやっていることは、テキストファイルを読んで、 "。" 「センテンスマーカーの終わり」ではファイルに置き換えられますが、これを開始位置に配置しています。私は、文の最後にある " - "の場所にマーカーを追加したいと思います。私のコードはここにある:"。"をPythonの<s>に置き換えてください。

import codecs 
import re 
import sys 
import io 

fil = codecs.open("aa.txt","r",encoding="utf-8") 
fil1 = codecs.open("a.txt","w",encoding="utf-8") 
for line in fil: 
    for ch in line: 
     ch = ch.replace(u'۔','</s><s>') 
     fil1.write(ch) 

私の元のデータは次のとおりです。

میراناماحمدہے。あなたはپڑھتاہو。置き換えるしようとした後

私のファイルは、次のとおりです。

enter image description here

は親切に私を助けたり、私が何ができるか私を示唆しています。検索してから交換する文字列:

+0

ここで起こっていることは、LTRとRTLとの相互作用です。選択動作を見ると、すべてが正しい順序になりますが、各文がLTRテキストに埋め込まれたRTLフラグメントであるかのように、I _think_がレンダリングされます。下の答えで文字を選択することで、文字が順番に並んでいることがわかります:最初の文、置換テキスト、2番目の文、置換テキストですが、これはLTRのレイアウトです。 – mwchase

+0

@nchchaseどうすればこの問題を解決できますか? – smartF

答えて

-1
string.replace(s, old, new[, maxreplace]) 

機能は

  1. Sパラメータ。
  2. old:置き換える古いサブストリング。
  3. new:古いサブストリングを置き換える新しいサブストリング。
  4. maxreplace: サブストリングを交換する最大回数。

そして、あなたの機能:

ch = ch.replace(u'۔','</s><s>') 

あなたは、パラメータとして変更を行うためにwhant文字列のですか?

ch = ch.replace(ch,'۔','</s><s>') 

そしておそらくプログラムは右から左に読み取りますが、左から右への書き込み :そこにこれを試してみてください ために私はが何であるかをuと理解していませんでした。

+0

'u'はUnicode用です。 –

+0

はユニコード用です。私は他の文字と置き換えています – smartF

関連する問題