On 2014-02-06 00:10, Zhen Zhang wrote:
Hi, every one.

I am a second year EE student.
I just started learning python for my project.

I intend to parse a csv file with a format like

3520005,"Toronto (Ont.)",C  
,F,2503281,2481494,F,F,0.9,1040597,979330,630.1763,3972.4,1
2466023,"Montréal (Que.)",V  
,F,1620693,1583590,T,F,2.3,787060,743204,365.1303,4438.7,2
5915022,"Vancouver (B.C.)",CY 
,F,578041,545671,F,F,5.9,273804,253212,114.7133,5039.0,8
3519038,"Richmond Hill (Ont.)",T  
,F,162704,132030,F,F,23.2,53028,51000,100.8917,1612.7,28

into a text file like the following

Toronto 2503281
Montreal 1620693
Vancouver 578041

I am extracting the 1st and 5th column and save it into a text file.

This is what i have so far.


[code]

import csv
file = open('raw.csv')
reader = csv.reader(file)

f = open('NicelyDone.text','w')

for line in reader:
       f.write("%s %s"%line[1],%line[5])

[/code]

This is not working for me, I was able to extract the data from the csv file as 
line[1],line[5]. (I am able to print it out)
But I dont know how to write it to a .text file in the format i wanted.

% is an operator. When used with a format string on its left, its
arguments go on its right. In the general case, those arguments should
be put in a tuple, although if there's only one argument and it's not a
tuple, you can write just that argument:

    f.write("%s %s" % (line[1], line[5]))

Also, I have to process the first column eg, "Toronto (Ont.)" into "Toronto".
I am familiar with the function find(), I assume that i could extract Toronto out of 
Toronto(Ont.) using "(" as the stopping character,
but based on my research , I have no idea how to use it and ask it to return me 
the string(Toronto).

Use find to tell you the index of the "(" (if there isn't one then
it'll return -1) and then slice the string to get the part preceding it.

Another way is to use the "partition" method.

Also, have a look at the "strip"/"lstrip"/"rstrip" methods.

Here is my question:
1:What is the data format for line[1], if it is string how come f.write()does 
not work. if it is not string, how do i convert it to a string?
2:How do i extract the word Toronto out of Toronto(Ont) into a string form 
using find() or other methods.

My thinking is that I could add those 2 string together like c=a+' ' +b, that 
would give me the format i wanted.
So i can use f.write() to write into a file  ;)

Sorry if my questions sounds too easy or stupid.

Thanks ahead

Zhen


--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to