以下の形式の入力ファイルがあります。
<ftnt>
<p><su>1</su> aaaaaaaaaaa </p>
</ftnt>
...........
...........
...........
... the <su>1</su> is availabe in the .........
値を置き換え、ftnt
タグ内のデータ全体を削除して、これを以下の形式に変換する必要があります。
"""...
...
... the aaaaaaaaaaa is available in the ..........."""
私が書いたコードを見つけてください。最初に、キーと値を辞書に保存し、グループ化を使用してキーに基づいて値を置き換えようとしました。
import re
dict = {}
in_file = open("in.txt", "r")
outfile = open("out.txt", "w")
File1 = in_file.read()
infile1 = File1.replace("\n", " ")
for mo in re.finditer(r'<p><su>(\d+)</su>(.*?)</p>',infile1):
dict[mo.group(1)] = mo.group(2)
subval = re.sub(r'<p><su>(\d+)</su>(.*?)</p>','',infile1)
subval = re.sub('<su>(\d+)</su>',dict[\\1], subval)
outfile.write(subval)
で辞書を使用しようとしましre.sub
たが、KeyError
. 原因がわかりません 使い方を教えてください。ここで何か助けていただければ幸いです。