write file

miguel olivares varela klica_sk8 at hotmail.com
Tue Jul 5 18:09:53 EDT 2011




What's date_cdr supposed to be?

It was a mistake  it should be date_source


Is your exception handler doing unusual things with sys.exit?

Not really

Did you try to run this?  When I try to run it, it fails to compile.

it compiles i have no problems with the compilation. The issue is the result 'out.csv',  what i want is to save all the modified rows from 'test.csv' into 'out.csv' but i only can save the firs row.   



You might want to try opening your output file once and writing to it repeatedly, then close()ing it after all your writes are completed.  Or use "with": http://effbot.org/zone/python-with-statement.htm


On Tue, Jul 5, 2011 at 2:25 PM, miguel olivares varela <klica_sk8 at hotmail.com> wrote:







Hi,

i got a csv file that i need to modify and create a new one,  i have no problem to read mi 'test.cvs' which is the source file but when i try to create a new one with the modifications i only got the first row in my 'out.csv' file.  I think there is somethng wrong in my loop because i can't  put into the rest.   



this is my an example of source file:
[test.csv]
Name;Lastname;Age;ContractDate;PhoneNumber
John;Smith;20110128 105840;33611111111
Mike;Brown;20110128 105842;33622222222
James;Ryan;20110128 105850;33633333333

Barry;Jackson;20110128 105847;33644444444


[here my code:]

import sys
import csv
import os
import glob
import time

dir_cdr = "/tmp"
#loop to find files csv in a directory and read thoses files

for cdr_files_in in glob.glob(os.path.join(dir_cdr, '*.csv') ):
        file_source = open(cdr_files_in, 'r')
        reader = csv.reader(file_source, delimiter=';', quoting=csv.QUOTE_NONE)

        try:
                for data in reader:
                        if data:
                                firstname = data[0]
                                lastname = data[1]
                                date_source = data[2]

                                phone = data[3]
                                #Date to epoch
                                timestamp=int(time.mktime(time.strptime(date_source, "%Y%m%d %H%M%S")))
                                fout = open("out.csv", "w")

                                print >>fout, lastname, firstname, timestamp, phone
                                fout.close()
                                sys.exit()
                file_source.close()

        except csv.Error, e:
                print e
                file_source.close()
                sys.exit('file %s, line %d: %s' % (file_source, reader.line_num, e)

[out.csv]
Smith John 1296208720 33611111111



Could you help me?

Best Regards,
Miguel

 		 	   		  

--

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



 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20110705/ef78a2ff/attachment-0001.html>


More information about the Python-list mailing list