Strange Behavior: csv module & IDLE

Marc 'BlackJack' Rintsch bj_666 at gmx.net
Fri Dec 28 21:37:26 EST 2007


On Fri, 28 Dec 2007 18:12:58 -0800, t_rectenwald wrote:

> Within the program, the snippet where I use the csv module is below:
> 
> ==============================
> csvfile = open('foo.csv', 'w')
> writer = csv.writer(csvfile)
> 
> for row in rows:
>     writer.writerow(row[0:3])
> 
> csvfile.close
> ==============================
> 
> The rows object is returned from a database query and is a list of
> tuples.  Now here is the strange thing.  If I run this program
> directly from the command line, i.e.,
> 
> D:\test> D:\python25\python foo.py
> 
> It runs fine, foo.csv is created and all is well.  However, when I run
> it through the IDLE shell as described above, the foo.csv file is
> created but remains empty at 0 bytes.  When I try to delete the file,
> Windows says it is in use.  The only way I can break out of this is by
> restarting the IDLE shell.  In other words, it appears that the shell
> is hanging.
> 
> This will run through Task Scheduler, so shouldn't be a problem, but
> I'm worried that I'm coding this wrong for it to be acting this way
> under IDLE.  Any help or explanation would be appreciated.

You are not closing the file so the buffered data is not written to disk. 
To call a function you need the parenthesis, otherwise you are just
referencing it without any effect.

Ciao,
	Marc 'BlackJack' Rintsch



More information about the Python-list mailing list