在Python中重新排列缩进之后再排列列

衍射

我的数据集看起来像:

atom 01 B   HEL A1001 -1.09 32.90 22.99  
atom 02 C   ARG A1002 -3.22 22.89 12.00  
atom 03 C1  ARG A1003 -2.99 18.32 22.13  
atom 04 CW2AARG A1004 -2.22 19.99 29.84  
atom 05 WS  HEL A1005 -3.22 18.33 14.21

...
我正在寻找的是更正第三行缩进问题或在AARG之前添加“空格”或创建空格列。它最终应该看起来像..

atom 01 B    HEL A1001 -1.09 32.90 22.99  
atom 02 C    ARG A1002 -3.22 22.89 12.00  
atom 03 C1   ARG A1003 -2.99 18.32 22.13  
atom 04 CW2  AARG A1004 -2.22 19.99 29.84  
atom 05 WS   HEL A1005 -3.22 18.33 14.21

for line in map(str.split, inp): x=line[2]
我试图通过选择列说line[2]我得到一个错误的列选择,因为CW2AARG未来的单列条目没有CW2line[2]AARG线路line[3]
关于如何更改方法的任何想法...

赛斯

假设在进行此列连接时您的氨基酸ID为四个字符长,并且这是唯一有问题的列,则此代码应该起作用:

pdb_data = []
for line in open('input.txt'):
    line = line.split()
    if len(line)<8:
        pre = line[0:2]
        post = line[3:]
        col3 = line[2][:-4]
        col4 = line[2][-4:]
        new_line = pre+[col3,col4]+post
        pdb_data.append(new_line)
    else:
        pdb_data.append(line)

如果长度不总是四个字符,则可以尝试应用一些基本规则来分割字符串:如果字符串中的字符达到一个数字:则在那里分割。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章