[Tutor] csv files
Lloyd Kvam
pythonTutor at venix.com
Sat Apr 17 15:13:58 EDT 2004
Sorry, two OBVIOUS typos. There could be more.
On Sat, 2004-04-17 at 15:06, Lloyd Kvam wrote:
> Here are some suggestions for rewriting the process function:
>
> change inp1,inp2,... to a list. I'll call it inplist from here on.
>
> Keep the 76 line assumption for now.
>
> curlines = [inp.readline() for inp in inplist]
> # read files in parallel into a list of current lines
>
> outdata = [line[88:96] for line in curlines]
> # pull out data from each line
CHANGED to outdata
>
> outlabel = '"' + curlines[0][:12] + '"'
> # pull out the lable value from first line and add quotes
> # that line is not so readable, but I think it is OK
>
> outstring = ','.join([outlabel] + outdata)
> # make label + data into a list.
> # make the list into a string with comma separators
outdata is already a list. It doesn't need square brackets to enclose
it. outlabel is "listified" by putting it in square brackets. +
combines two lists into one longer list.
>
> Now you can write the string to the output file.
>
> use the same kind of logic for outp2. Notice that the four lines above
> would be exactly the same for outp2 except for the slice values 88:96
> and 123:130. So rather than cutting and pasting those lines and
> changing the slice value, you could make them into a function that
> returns the string to be written.
>
> To call process with a list of input files:
> process([inp1,inp2,inp3,inp4,inp5,inp6,inp7,inp8,inp9,inp10],outp1,outp2)
> simply put [] square brackets around the input files.
>
> I used the list comprehension syntax for processing the inplist. Though
> it may look a little strange as compared to C or Java code, it is a very
> nice syntax for making new lists from existing lists.
>
> Note that you never use the csv module. It doesn't look like you need
> it for this problem.
>
>
> On Fri, 2004-04-16 at 20:39, ABDUL JABBAR SIDDIQUE wrote:
> > As I mentioned in my last mail that I am new to programming and may
> > ask stupid questions. :)Bare with me please.
> >
> > I have coded as follows to convert some text files into csv format for
> > onward reading into python programming. It seems that there must be
> > some short way to do all this which I don't know. I will
> > appreciate your advices. Following is the code:
> >
> > from csv import *
> >
> > def
> > process(inp1,inp2,inp3,inp4,inp5,inp6,inp7,inp8,inp9,inp10,outp1,outp2):
> > for i in range(76): # it means i from 0 to 75
> > line1=inp1.readline()
> > line2=inp2.readline()
> > line3=inp3.readline()
> > line4=inp4.readline()
> > line5=inp5.readline()
> > line6=inp6.readline()
> > line7=inp7.readline()
> > line8=inp8.readline()
> > line9=inp9.readline()
> > line10=inp10.readline()
> >
> > if i >= 5: ### Data values begin from line 5
> >
> > outp1.write(('"'+line1[:12]+'"'+','+line1[88:96]+','+line2[88:96]+','+line3[88:96]+','+line4[88:96]+',' \
> >
> > +line5[88:96]+','+line6[88:96]+','+line7[88:96]+','+line8[88:96]+',' \
> > +line9[88:96]+','+line10[88:96])+"\n") ###
> > Data values for Control Delays (MOE) is written to output file
> >
> >
> > outp2.write(('"'+line1[:12]+'"'+','+line1[123:130]+','+line2[123:130]+','+line3[123:130]+','+line4[123:130]+',' \
> >
> > +line5[123:130]+','+line6[123:130]+','+line7[123:130]+','+line8[123:130]+',' \
> > +line9[123:130]+','+line10[123:130])+"\n")
> > ### Data values for Speed (MOE) is written to output
> > file
> >
> > inp1 = open("S_1.OUT","r") ### Results of Simulation output are
> > named as S_1.OUT, S_2.OUT etc.
> > inp2 = open("S_2.OUT","r")
> > inp3 = open("S_3.OUT","r")
> > inp4 = open("S_4.OUT","r")
> > inp5 = open("S_5.OUT","r")
> > inp6 = open("S_6.OUT","r")
> > inp7 = open("S_7.OUT","r")
> > inp8 = open("S_8.OUT","r")
> > inp9 = open("S_9.OUT","r")
> > inp10 = open("S_10.OUT","r")
> >
> > outp1 = open ("CD.csv","w")
> > outp2 = open ("Speed.csv","w")
> >
> >
> > process(inp1,inp2,inp3,inp4,inp5,inp6,inp7,inp8,inp9,inp10,outp1,outp2)
> >
> >
> > print "data copied to file..." ### Mentioning that process of
> > data extraction is completed.
> >
> > # Now close the files
> > inp1.close()
> > inp2.close()
> > inp3.close()
> > inp4.close()
> > inp5.close()
> > inp6.close()
> > inp7.close()
> > inp8.close()
> > inp9.close()
> > inp10.close()
> > ### Finally output file is closed.
> > outp1.close()
> > outp2.close()
> >
> > Jabbar
> >
> >
> >
> > ______________________________________________________________________
> > Protect your PC - Click here for McAfee.com VirusScan Online
> >
> > ______________________________________________________________________
> >
> > _______________________________________________
> > Tutor maillist - Tutor at python.org
> > http://mail.python.org/mailman/listinfo/tutor
--
Lloyd Kvam
Venix Corp.
1 Court Street, Suite 378
Lebanon, NH 03766-1358
voice: 603-653-8139
fax: 801-459-9582
More information about the Tutor
mailing list