Strange Behavior: csv module & IDLE

t_rectenwald t.rectenwald at gmail.com
Fri Dec 28 21:12:58 EST 2007


I've noticed an oddity when running a program, using the csv module,
within IDLE.  I'm new to Python so am confused by what is happening.
Here is what I'm doing:

1) Open the IDLE Shell.
2) Select File | Open...
3) Choose my file, foo.py, opening it in a window.
4) From that window, I hit F5 to run the module.

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.

Best Regards,
Tom



More information about the Python-list mailing list