gatk-3.8/python/FlatFileTable.py

25 lines
788 B
Python
Raw Normal View History

#!/usr/bin/env python
import sys, itertools
def record_generator(filename, sep="\t", skip_n_lines=0):
"""Given a file with field headers on the first line and records on subsequent lines,
generates a dictionary for each line keyed by the header fields"""
fin = open(filename)
for i in range(skip_n_lines): # Skip a number of lines
fin.readline()
header = fin.readline().rstrip().split(sep) # Pull off header
for line in fin: #
fields = line.rstrip().split(sep)
record = dict(itertools.izip(header, fields))
yield record
def record_matches_values(record, match_field_values):
for match_field, match_values in match_field_values:
if record[match_field] not in match_values:
return False
return True