[Tutor] better looping construct for replacing elements in file?
Brett Longworth
blongworth at whoi.edu
Thu Feb 2 21:50:49 CET 2012
Hello,
Today I wrote a quick script to replace elements in multiple lines of a
file with corresponding elements from a single line in another file,
linking the two via an index element. The code iterates through the
entire source file to find the matching index for each line of the
destination file. This works, but it's clearly a terrible way to solve
the problem. Can someone point me to a more efficient, pythonic solution?
thanks,
-Brett
Code:
wheel = "A794"
wheelfile = "A794.txt"
statusfile = "CURRENT.ams"
sfile = csv.reader(open(statusfile), delimiter='\t')
statusWriter = csv.writer(open('statustest.txt', 'wb'), delimiter='\t',
quotechar='|', quoting=csv.QUOTE_MINIMAL)
for sline in sfile:
#print sline
wfile = csv.reader(open(wheelfile))
for line in wfile:
#print line[0]
#print sline[18]
if line[0] == sline[18]:
sline[0] = line [1]
sline[1] = "OSG"+str(line[4])
sline[17] = wheel
sline[21] = line[9]
statusWriter.writerow(sline)
Excerpt of wheelfile:
"2","X496","02/01/12","OSG","106788","85411","GS-13365","Outside Primary
Standard | > Modern (1950)","2.43","149177"
"3","C655","02/01/12","OSG","106534","83028","HY-19231","Outside Blank |
> 30,000","3.63","149178"
Excerpt of statusfile:
Y002 BET2918 10/18/06 15:32:52 160.00 174 1.000
16408 1.306E-12 1.213E-10 402.6 405.9 -42.7 3.2
1.2242 -0.0220 1.822 -12.66 A499 2 1 5631
86523 data 3.7E-6
Y002 BET2918 10/18/06 15:35:46 150.00 162 1.000
15654 1.313E-12 1.226E-10 407.6 410.3 -43.9 2.0
1.2180 -0.0243 1.894 -13.03 A499 2 1 5631
86523 3.7E-6
0003 BET7147 10/18/06 15:55:33 170.00 186 1.000
3442 2.903E-13 2.693E-11 357.7 359.3 -46.1 2.5
1.2000 0.0276 1.734 -12.86 A499 3 1 5631
86524 3.3E-6
0003 BET7147 10/18/06 15:58:49 170.00 185 1.000
3232 2.772E-13 2.598E-11 351.8 353.4 -46.1 3.5
1.2000 0.0149 1.761 -12.66 A499 3 1 5631
86524 3.2E-6
0003 BET7147 10/18/06 16:02:06 170.00 185 1.000
3399 2.955E-13 2.753E-11 346.9
--
Brett Longworth
Research Associate
Woods Hole Oceanographic Institution
ph: 508.289.3559
fax: 508.457.2183
More information about the Tutor
mailing list