On 2012/04/23 03:46 PM, Gerhardus Geldenhuis wrote:
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
<mailto:joel.goldst...@gmail.com>> wrote:
On Mon, Apr 23, 2012 at 8:56 AM, Gerhardus Geldenhuis
<gerhardus.geldenh...@gmail.com
<mailto: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 <mailto: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
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor
If you don't need to use Python and are on a *nix machine you can use
cut to do the work for you for eg and it might simplify your workflow.
-d specifies the delimiter of the file, in this case a comma
-f specifies the fields you want, in this case 1 to 3, 5, and 10
cut -d, -f1-3,5,10 input_filename > output_filename
--
Christian Witts
Python Developer
//
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor