views:

62

answers:

2

I want to write something in a file. for example,

fo=open('C:\\Python\\readline_test.txt','a')
for i in range(3):
 st='abc'+'\n'
 fo.write(st)
fo.close

then I open this python file in IDLE, and click "Run Module". There is no error message but I find the writing is not complete if I didn't quit IDLE. How can I complete the file writing without quitting the IDLE? Thanks.

(I use Python 2.6.2 on Windows XP.)

+7  A: 

Maybe a typo, but it should be:

fo.close()

Then it should work.

Alternative you can use the with statement syntax (better example):

with open('C:\\Python\\readline_test.txt','a') as fo:
    for i in range(3):
        fo.write('abc'+'\n')

The file is automatically closed when leaving the with block.

(Instead of 'abc'+'\n', just write 'abc\n')

Felix Kling
A: 

You can try using

fo.flush()

and mayby

os.fsync()

after writing to file object to ensure that all file operations are flushed to disk.

Pantokrator