我告诉你我的问题。 像这样的一个表:
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')
如果我先拆分'|' 我如何纠正这一行,以便在被包围时将第四个管道替换为'| '并执行拆分后?
提前谢谢你。
答案 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))