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

Reply via email to