yogi wrote: > Hi all, > I ´m a Python Newbie. Just 48 hrs into Python. > I am trying to parse a file which is tab spaced.
You're close... > My Python code > #/bin/python > import sys, csv, re > > # This programme finds the SNPs from the range passed from > the select option > ## But first for fixed values. > gen = 16 > rval0l = 6009890 > rval0u = 6009939 > rval1l = 0 > rval1u = 0 > types = (int, str, int, int) > fis = csv.reader(open("divs.map", "rb"), delimiter='\t', > quoting=csv.QUOTE_NONE) # csv splits columns and this file > is tab spaced > # Reading file line by line and using Regex to match the > gene. > for row in fis: > #if re.search("^[1-9]\-^[1-9]\:^[1-9]\-^[1-9]", row > [3]): > if (str(gen) == str(row[0])): row[0] is already a string so this could be if str(gen) == row[0] or if gen == int(row[0]) > print 'Match for 16 found looking for SNPs > in range between '+ str(rval0l),str(rval0u)+' ' > for row[2] in range (rval0l,rval0u): > print row This is confused. I think you want all the rows where row[3] (not 2) is between rval0l and rval0u? So just make this another condition: if rval0l <= int(row[3]) <= rval0u: print row Aside to the list: Did anyone else know that you can assign to a list element as the target of a for statement? In [6]: row=range(3) In [8]: for row[2] in range(5): print row ...: ...: [0, 1, 0] [0, 1, 1] [0, 1, 2] [0, 1, 3] [0, 1, 4] Color me surprised. Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor