更换和分割线

时间:2016-12-22 11:48:45

标签: python replace split

我告诉你我的问题。 像这样的一个表:

ClassLoader

当我使用line.split('|')来分隔最后一个管道'|'时,某些行之后没有空格,最后我无法获得一个清晰的表格。 例如:

  

gi | 614110824 | sp | P9WIB2.1 | PHLB_MYCTO RecName:Full = Phospholipase C 2;标志:前体

我打算更换最后一个'|'到'\ t'并在'\ t'之后拆分。使用上面的行,我无法将所有行拆分到我想要的位置。

    gi|494115682|ref|WP_007055464.1| MULTISPECIES: dephospho-CoA kinase [Bifidobacterium]
    gi|614110824|sp|P9WIB2.1|PHLB_MYCTO RecName: Full=Phospholipase C 2; Flags: Precursor
    gi|446269943|ref|WP_000347798.1| MULTISPECIES: amino acid ABC transporter permease [Vibrio]
    gi|446561267|ref|WP_000638613.1| acetyltransferase [Staphylococcus aureus]

条()。分裂( '\ T')

如果我先拆分'|' 我如何纠正这一行,以便在被包围时将第四个管道替换为'| '并执行拆分后?

提前谢谢你。

2 个答案:

答案 0 :(得分:2)

text = 'gi|494115682|ref|WP_007055464.1| MULTISPECIES: dephospho-CoA kinase [Bifidobacterium]'
text.rsplit('|',1) 

出:

['gi|494115682|ref|WP_007055464.1',
 ' MULTISPECIES: dephospho-CoA kinase [Bifidobacterium]']
  

str.rsplit(sep = None,maxsplit = -1)

     

返回中的单词列表   string,使用sep作为分隔符字符串。如果给出maxsplit,at   大多数maxsplit分裂完成,最右边的分裂。如果不是sep   指定或无,任何空格字符串都是分隔符。

答案 1 :(得分:1)

我怀疑你确实想要csv模块:

import io
import csv

file = io.StringIO('''
gi|494115682|ref|WP_007055464.1| MULTISPECIES: dephospho-CoA kinase [Bifidobacterium]
gi|614110824|sp|P9WIB2.1|PHLB_MYCTO RecName: Full=Phospholipase C 2; Flags: Precursor
gi|446269943|ref|WP_000347798.1| MULTISPECIES: amino acid ABC transporter permease [Vibrio]
gi|446561267|ref|WP_000638613.1| acetyltransferase [Staphylococcus aureus]
'''.strip())

reader = csv.reader(file, delimiter='|')
for row in reader:
    print(row)   # or print('\t'.join(row))