Python write to a file возвращает пустой файл
Я пытаюсь выполнить простые команды для записи hello world в файл:
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"]))
возвращает пустой файл.
2 ответов
Python не будет очищать файл после каждого write
. Вам либо нужно будет смыть его вручную, используя flush
:
>>> f.flush()
или закройте его самостоятельно с close
:
>>> f.close()
при использовании файлов в реальной программе, рекомендуется использовать with
:
with open('some file.txt', 'w') as f:
f.write('some text')
# ...
это гарантирует, что файл будет закрыт, даже если исключение выдается. Если вы хотите работать в REPL, вы можете придерживаться его закрытия вручную, так как он попытается прочитать всю with
прежде чем пытаться выполнить его.
вам нужно закрыть файл:
>>> f.close()
кроме того, я бы рекомендовал использовать with
ключевое слово с открывающимися файлами:
with open("/export/home/vignesh/resres.txt","w") as f:
f.write("hello world")
f.write("\t".join(["hello","world"]))
он автоматически закроет их для вас.