Newbie Question : "grep"
Larry Bates
lbates at websafe.com
Mon Mar 12 12:25:00 EDT 2007
moogyd at yahoo.co.uk wrote:
> Hello,
>
> I am attempting to write my first Python script to extract some
> information from a file, and place it into another file.
> (I am trying to find the physical postions of 4 cells within an FPGA)
> I have a working solution, and would appreciate any comments.
>
> for line in lines:
>
> if "placed" in line:
> if "i_a/i_b/ROM/" in line:
> pos = (line.split()[4]).split("_")[1]
> if "B18" in line:
> print " i_a/i_b/ROM/B18 [7:6] LOC =", pos
> elif "B14" in line:
> print " i_a/i_b/ROM/B14 [5:4] LOC =", pos
> elif "B10" in line:
> print " i_a/i_b/ROM/B10 [3:2] LOC =", pos
> elif "B6" in line:
> print " i_a/i_b/ROM/B6 [1:0] LOC =", pos
> else:
> print "Error"
>
> Specific questions
> - Use for "Phrase" in line or line.find("Phrase") >= 0 ?
> - If I increase number of elements I am searching for, then I have
> more elif...elif. Is there a cleaner solution?
>
> Thanks for any feedback.
>
> Steven
>
Something like (not tested):
def search(search_gates, line):
for gate, index in search_gates:
pos = (line.split()[4]).split("_")[1]
if gate in line:
return " i_a/i_b/ROM/%s %s LOC =%s" % (gate, index, pos)
return "Error"
search_gates=[('B6', '[1:0]'), 'B10', '[3:2]'),
'B14', '[5:4]'), 'B17', '[7:6]')]
for line in lines:
print search(search_gates, line)
-Larry
More information about the Python-list
mailing list