2017-08-31 26 views
0

2つのテキストファイルがあります。1.txtは単語の辞書です。もう1つはフレーズの2.txtです。1.txtの一般的な単語を確認します。& 2.txtと私はそれらの一般的な言葉を第3の単語「説明する」と置き換えたい。2つのテキストファイルに共通の単語を第3の単語に置き換えます。

私は多くの方法でクラックを試みましたが失敗しました。いずれかは私に私が使用している

コードを助けることができます。このコード

wordsreplace = open("1.txt",'r') 

with open("2.txt") as main: 
    words = main.read().split() 

replaced = [] 
for y in words: 
    if y in wordreplace: 
     replaced.append(wordreplace[y]) 
    else: 
     replaced.append(y) 
text = ' '.join(replaced) 

replaced = [] 
for y in words: 
    replacement = wordreplace.get(y, y) 
    replaced.append(replacement) 
text = ' '.join(replaced) 

text = ' '.join(wordreplace.get(y, y) for y in words) 

new_main = open("2.txt", 'w') 
new_main.write(text) 
new_main.close() 

を、2.txtを書き込みますが、私はいない言葉は、私はあなたのコード内の問題を指摘したくない

+0

あなたがそのファイルの内容と予想される結果を投稿した方が良いでしょう – RomanPerekhrest

答えて

1

を置き換えることができますこの作業は基本的に数行で行うことができるからです。ここで自己完結型の例だ(なしのファイル、テキストのみ入力)

  • は、最初のあなたが必要なときにルックアップすることができますwordsと呼ばれるsetを作成(ファイルから行うときset()read().split()を渡して行います。words = set(main.read().split())
  • は、今では見つからない場合は、交換機能は、単語を発行ワード境界ワード正規表現置換機能

を使用します他の辞書には、「説明」を発行:

words = {"computer","random"} 

text = "computer sometimes yields random results" 

import re 

new_text = re.sub(r"\b(\w+)\b",lambda m : "explain" if m.group(1) in words else m.group(1),text) 

print(new_text) 

ので、交換は一致があるとき、私は言葉を交換するかどうかを決めることができ、または再びそれを発行し、私のlambdaを呼び出して、正規表現エンジンによって処理されます。

結果:もちろん

explain sometimes yields explain results 

これは、同様の辞書でなければなりません複数形(コンピュータ、...)を処理しません。

関連する問題