使用Python删除文件中的括号和文本

时间:2013-07-15 18:32:17

标签: python regex

我有一个包含以下内容的文本文件:

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()

任何提示都将不胜感激!

2 个答案:

答案 0 :(得分:4)

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

修改

您最近添加的代码中存在错误:您没有分配re.sub函数的结果。更改re.sub(...)的{​​{1}}。

答案 1 :(得分:3)

import re

with open('file') as f:
    input = f.read()
    output = re.sub(r'\(\w*\)', '', input)