0

交換にあたっては以下のようにしています。

import fileinput
for line in fileinput.FileInput("input.txt",inplace=1):
     line = line.replace("A","A'")
     print line,

しかし、私は多くの置き換えをしたいです。

A を A' に、B を BB に、C を CX に、D を KK に、などに置き換えます。

もちろん、上記のコードを何度も繰り返すことでこれを行うことができます。

しかし、特にinput.txtが大きい場合、それは多くの時間を消費すると思います。

どうすればこれをエレガントに行うことができますか?

強調を追加

私の入力は単なる str ABCD ではありません。

input.txt を入力として使用する必要があり、input.txt の A のすべての出現を A' に、input.txt の B のすべての出現を BB に、input.txt の C のすべての出現を CX に、すべての出現を置き換えたいinput.txt の D を KK に送信します。

4

2 に答える 2

1

正規表現の使用:

>>> import re
>>>
>>> replace_map = {
...   'A': "A'",
...   'B': 'BB',
...   'C': 'CX',
...   'D': 'KK',
...   'EFG': '.',
... }
>>> pattern = '|'.join(map(re.escape, replace_map))
>>> re.sub(pattern, lambda m: replace_map[m.group()], 'ABCDEFG')
"A'BBCXKK."
于 2013-11-02T12:31:59.433 に答える