- 论坛徽章:
- 4
|
本帖最后由 mswsg 于 2016-06-22 22:11 编辑
对正则表达式不是太熟,借鉴楼上两位re.sub,我自己改写了一个。
最主要的思路:首先记录‘|’所在行的下一行的行号到一个列表a,然后文件指针归零,重新判断,并打印符合行号(列表a)的行- import re
- with open('result.exonerate.txt', 'r') as f:
- a =[]
- for num, line in enumerate(f):
- if '|' in line:
- a.append(num + 1)
- f.seek(0, 0)
- for num, line in enumerate(f):
- if 'Query:' in line:
- print ">" + line.strip().split()[1],
- elif 'Target:' in line:
- print line.strip().split()[1]
- elif num in a:
- b = re.sub(r'[^A-Z]','', line[2:-2])
- print b
复制代码 好像文件指针不用归零,修改代码- import re
- with open('result.exonerate.txt', 'r') as f:
- a =[]
- for num, line in enumerate(f):
- if '|' in line:
- a.append(num + 1)
- if 'Query:' in line:
- print ">" + line.strip().split()[1],
- elif 'Target:' in line:
- print line.strip().split()[1]
- elif num in a:
- b = re.sub(r'[^A-Z]','', line[2:-2])
- print b
复制代码 |
评分
-
查看全部评分
|