我有一个包含以下行的大文件DDD-1126N|refseq:NP_285726|uniprotkb:P00112
和DDD-1081N|uniprotkb:P12121
,我想获取uniprotkb
之后的数字。
这是我的代码:
x = 'uniprotkb:P'
f = open('m.txt')
for line in f:
print line.find(x)
print line[36:31 + len(x)]
在line.find(x)
中的问题是10和26,当它是26时,我获取完整的数字。我对编程还不太熟悉,所以我在找一些东西来抓住单词后面的完整数字。
x = 'uniprotkb:'
f = open('m.txt')
for line in f:
if x in line:
print the number after x
如果
x
是静态的,并且总是在每一行的末尾匹配一个子字符串(如"DDD-1126N|refseq:NP_285726|uniprotkb:P00112"
),那么re
模块在这里是完全不必要的:编辑: 回答你的评论。如果它们由管道字符(
|
)分隔,则可以执行以下操作:如果m.txt有以下行:
然后上述将输出:
用列分隔符替换
sep = "|"
。使用正则表达式:
相关问题 更多 >
编程相关推荐