Python запись в файл возвращает пустой файл

голоса
7

Я пытаюсь сделать простые команды, чтобы написать привет мир в файл:

50 complexity:test% python2.7
Python 2.7.3 (default, Feb 11 2013, 12:48:32)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
Type help, copyright, credits or license for more information.
>>> f=open(/export/home/vignesh/resres.txt,w)
>>> f.write(hello world)
>>> f.write(\t.join([hello,world]))

Это возвращает пустой файл.

Задан 04/08/2013 в 22:39
пользователем
На других языках...                            


2 ответов

голоса
5

Вы должны закрыть файл:

>>> f.close()

Кроме того , я бы рекомендовал использовать withключевое слово с открытием файлов:

with open("/export/home/vignesh/resres.txt","w") as f:
    f.write("hello world") 
    f.write("\t".join(["hello","world"]))

Она будет автоматически закрывать их для вас.

Ответил 04/08/2013 в 22:40
источник пользователем

голоса
11

Python не сбросит файл после каждого write. Вам необходимо либо очистить его вручную с помощью flush:

>>> f.flush()

или закрыть себя close:

>>> f.close()

При использовании файлов в реальной программе, рекомендуется использовать with:

with open('some file.txt', 'w') as f:
    f.write('some text')
    # ...

Это гарантирует , что файл будет закрыт, даже если исключение. Если вы хотите работать в REPL, хотя, вы можете придерживаться его закрытия вручную, так как он будет пытаться читать полноту , withпрежде чем пытаться выполнить его.

Ответил 04/08/2013 в 22:40
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more