3

次のような内容を含むテキスト ファイルがあります。

Cl1 Cl 0.21988(6) 0.2500 0.15016(5) 0.01587(14) Uani 1 2 d S T P . .
O1 O 1.05820(17) 0.2500 0.48327(16) 0.0206(3) Uani 1 2 d DS TU P . .
H2 H 1.1042 0.2224 0.3900 0.025 Uiso 0.5 1 calc DR U P . .
O2 O 0.78198(19) 0.2500 0.29119(17) 0.0306(4) Uani 1 2 d S TU P . .
N1 N 0.7887(2) 0.2500 0.92083(19) 0.0152(3) Uani 1 2 d DS TU P . .
H1 H 0.8568 0.2500 1.0305 0.018 Uiso 1 2 calc DR U P . .

括弧を探して、括弧とその間のものを削除するプログラムを作成しようとしています。したがって、1行目は次のようになります

Cl1 Cl 0.21988 0.2500 0.15016 0.01587 Uani 1 2 d S T P . .

これは私がこれまでに持っているもので、'Uiso'括弧がないため、コードの一部でのみ機能するようです。括弧を外していないようです..

for line in myfile:

    if "Uani" in line:

        re.sub('\(\w*\)', '', line)
        print >> energy, line

    elif 'Uiso' in line:

        re.sub('\(\w*\)', '', line)
        print >> energy, line

print myfile.read()

ヒントをいただければ幸いです。

4

2 に答える 2

4
output = re.sub('\(\w*\)', '', input)

編集:

最近入れたコードに間違いがあります:re.sub関数の結果を代入していません。に変更re.sub(...)line = re.sub(...)ます。

于 2013-07-15T18:40:50.607 に答える