Thanks! That does look helpfull, I will give it a go and see if I can get an alternative version working.
Regards On 23 April 2012 17:40, Don Jennings <dfjenni...@gmail.com> wrote: > Remember, the keys for the dictionary in your example are simply strings. > It just so happens that those strings are in another file. Read the file > which contains the specified columns and split on the comma into variable > names for your output: > > > with open(spec_file, 'r') as f: > outcol1, outcol2, outcol3 = f.readline().split(',') > > # use variable names to access dictionary > print row[outcol1] + ',' + row[outcol2] + ',' + row[outcol3] > > > Now, if you are unsure how many columns will be in the file with specified > columns, that changes things slightly: > > > # get a list of the requested columns > outcols = [] > with open(spec_file, 'r') as f: > line = f.readline() > outcols.extend(line.split(',')) > > # later, use that list to do something with the output (I assume strings > for your data here) > print ','.join([row[outcol] for outcol in outcols]) > > Helpful? > > Take care, > Don > > > > Not quite, > > > > I have csvfile1: > > column1, column2, column3, ... column200 > > > > That is my raw data but I want to use only 5 columns for example in a > > specific application. > > I thus want a file with the following: > > column33,column1,column5 > > > > I then want to read the original csv file and write a new csv file with > the > > requested columns only. > > > > Does that make more sense? > > > > Regards > > > > On 23 April 2012 14:41, Joel Goldstick <joel.goldst...@gmail.com> wrote: > > > >> On Mon, Apr 23, 2012 at 8:56 AM, Gerhardus Geldenhuis > >> <gerhardus.geldenh...@gmail.com> wrote: > >>> Hi > >>> Appologies about the subject I could not think of a better description. > >>> > >>> I have this very simple function: > >>> > >>> def readcsvfile(filename): > >>> f = open(filename, 'ro') > >>> csvdata = csv.DictReader(f) > >>> for row in csvdata: > >>> print row["column3"]+','+row["column1"] > >>> > >>> I have another inputfile that will be comma separated list of values. > >>> Eg: > >>> column3,column4,column10 > >>> > >>> The idea is that I use this inputfile to tranform the original csv > file. > >> I > >>> thus want a new file with only the specified columns. I am sure there > is > >> an > >>> elegant way of doing this but I am not sure how to convert my print > >>> statement into something more dynamic. Any pointers would be > appreciated. > >>> > >>> Regards > >>> > >>> -- > >>> Gerhardus Geldenhuis > >>> > >>> _______________________________________________ > >>> Tutor maillist - Tutor@python.org > >>> To unsubscribe or change subscription options: > >>> http://mail.python.org/mailman/listinfo/tutor > >>> > >> > >> So you want to take 'column1' and get back 1?, 'column10' and get back > 10? > >> > >> s = 'column1' > >> i = int(s[6:]) > >> > >> This will only work if your strings all start with the text 'column' > >> > >> -- > >> Joel Goldstick > >> > > > > > > > > -- > > Gerhardus Geldenhuis > > -------------- next part -------------- > > An HTML attachment was scrubbed... > > URL: < > http://mail.python.org/pipermail/tutor/attachments/20120423/aa787769/attachment.html > > > > > > ------------------------------ > > > > _______________________________________________ > > Tutor maillist - Tutor@python.org > > http://mail.python.org/mailman/listinfo/tutor > > > > > > End of Tutor Digest, Vol 98, Issue 58 > > ************************************* > > -- Gerhardus Geldenhuis
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor