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