запись в файл не завершена без выхода из IDLE (Python GUI) - PullRequest
0 голосов
/ 17 апреля 2010

Я хочу написать что-нибудь в файл. например,

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

, затем я открываю этот файл python в IDLE и нажимаю «Запустить модуль». Там нет сообщения об ошибке, но я считаю, что запись не завершена, если я не вышел из IDLE. Как я могу завершить запись файла, не выходя из IDLE? Спасибо.

(я использую Python 2.6.2 в Windows XP.)

Ответы [ 2 ]

8 голосов
/ 17 апреля 2010

Может быть опечатка, но она должна быть:

fo.close()

Тогда это должно сработать.

В качестве альтернативы вы можете использовать синтаксис оператора with ( лучший пример ):

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

Файл автоматически закрывается при выходе из блока with.

(вместо 'abc'+'\n', просто напишите 'abc\n')

0 голосов
/ 17 апреля 2010

Вы можете попробовать использовать

fo.flush()

и mayby ​​

os.fsync()

после записи в файл объекта, чтобы гарантировать, что все файловые операции записаны на диск.

...