On Monday, 27 January 2014 00:24:11 UTC-5, Dave Angel  wrote:
> matt.s.maro...@gmail.com Wrote in message:
> 
> > School assignment is to create a tab separated output with the original 
> > given addresses in one column and then the addresses split into other 
> > columns (ex, columns for city, postal code, street suffix).
> 
> > 
> 
> > Here is my code:
> 
> > 
> 
> > inHandler = open(inFile, 'r')
> 
> > outHandler = open(outFile, 'w')
> 
> > outHandler.write("FarmID\tAddress\tStreetNum\tStreetName\tSufType\tDir\tCity\tProvince\tPostalCode")
> 
> > for line in inHandler:
> 
> >     str = line.replace("FarmID\tAddress", " ")
> 
> >     outHandler.write(str[0:-1])
> 
> > 
> 
> >     str = str.replace(" ","\t", 1)
> 
> >     str = str.replace(" Rd, ","\tRd\t\t")
> 
> >     str = str.replace("Rd ","\tRd\t\t")
> 
> >     str = str.replace("Ave, ","\tAve\t\t")
> 
> >     str = str.replace("Ave ","\tAve\t\t")
> 
> >     str = str.replace("St ","\tSt\t\t")
> 
> >     str = str.replace("St, ","\tSt\t\t")    
> 
> >     str = str.replace("Dr, ","\tDr\t\t")
> 
> >     str = str.replace("Lane, ","\tLane\t\t")
> 
> >     str = str.replace("Pky, ","\tPky\t\t")
> 
> >     str = str.replace(" Sq, ","\tSq\t\t")
> 
> >     str = str.replace(" Pl, ","\tPl\t\t")
> 
> > 
> 
> >     str = str.replace("\tE, ","E\t")
> 
> >     str = str.replace("\tN, ","N\t")
> 
> >     str = str.replace("\tS, ","S\t")
> 
> >     str = str.replace("\tW, ","W\t")
> 
> >     str = str.replace(",\t","\t\t")
> 
> >     str = str.replace(", ON ","\tON\t")
> 
> > 
> 
> >     outHandler.write(str)
> 
> > 
> 
> > inHandler.close()
> 
> > outHandler.close()
> 
> > 
> 
> > 
> 
> > Here is some sample addresses, there are over 100:
> 
> > 
> 
> > FarmID      Address
> 
> > 1   1067 Niagara Stone Rd, Niagara-On-The-Lake, ON L0S 1J0
> 
> > 2   4260 Mountainview Rd, Lincoln, ON L0R 1B2
> 
> > 3   25 Hunter Rd, Grimsby, ON L3M 4A3
> 
> > 4   1091 Hutchinson Rd, Haldimand, ON N0A 1K0
> 
> > 5   5172 Green Lane Rd, Lincoln, ON L0R 1B3
> 
> > 6   500 Glenridge Ave, St. Catharines, ON L2S 3A1
> 
> > 7   471 Foss Rd, Pelham, ON L0S 1C0
> 
> > 8   758 Niagara Stone Rd, Niagara-On-The-Lake, ON L0S 1J0
> 
> > 9   3836 Main St, Lincoln, ON L0R 1S0
> 
> > 
> 
> > 
> 
> > 
> 
> > I have everything worked out, except that the final output places the 
> > farmID at the end of postal code as seen in the example below (notice the 
> > brackets showing where the farmID is placed):
> 
> > 
> 
> > FarmID      Address StreetNum       StreetName      SufType Dir     City    
> > Province        PostalCode      
> 
> > 1   1067 Niagara Stone Rd, Niagara-On-The-Lake, ON L0S 1J0(1)       1067    
> > Niagara Stone   Rd              Niagara-On-The-Lake     ON      L0S 1J0
> 
> > 
> 
> > Any ideas on how to fix this? Keep in mind as well that the farmID will 
> > have 2 characters at a certain point.
> 
> > 
> 
> 
> 
> Your specific concern is triggered by having two writes in the loop.
> 
> 
> 
> Get rid of the first and you're marginally closer. 
> 
> 
> 
> But really,  you've got much bigger troubles. All those
> 
>  unrestricted replace calls are not at all robust. But maybe
> 
>  you'll get away with it for a school assignment if the test data
> 
>  is very limited. 
> 
> 
> 
> Better would be to treat it like a parsing problem,  figuring what
> 
>  delimiter rule applies to each field,  and building a list Then
> 
>  use str.join to build the line for the outHandler.
> 
>  
> 
> 
> 
> -- 
> 
> DaveA

The code that I used is the proper way that we were supposed to complete the 
assignment.  All I need now is an 'if...then' statement to get rid of the 
unwanted FarmID at the end of the addresses.  I just don't know what will come 
after the 'if' part.
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to