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

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to