【发布时间】:2013-04-06 00:33:26
【问题描述】:
我正在尝试在 Python 中使用正则表达式逐行解析一个大的制表符分隔的文本文件,并打印该行包含 5 个或更多 0/1 或 1/1 实例的行。
我的脚本快到了,但我正在为 5 个或更多实例而苦苦挣扎。
这将打印一个匹配的行。
import re
f = open ("infile.txt", "r")
out = open("outfile.txt", "w")
for line in f:
if re.match(r"(.*)(0|1)/(1)(.*)", line):
print >> out, line,
要仅打印具有 5 个或更多匹配项的行,我尝试了 findall 和 finditer,如下所示,但它们不起作用:
for line in f:
x = len(re.findall(r"(.*)(0|1)/(1)(.*)", line)):
if x > 5:
print >> out, line,
谁能帮我解决这个问题?
这里是文本文件中一行的示例(所有空格都是文件中的制表符):
X 6529 . C A,G PASS AC=4,2;AF=0.6777 1/1:0,20 0/1:0,16 0/1:0,16 0/0:4,16 0/0:3,1
【问题讨论】:
-
怎么不行?你能修复你的缩进吗?
标签: python regex python-2.x multiple-instances