我正在尝试使用简单的命令将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"]))
这将返回一个空文件。
答案 0 :(得分:18)
Python不会在每个write
之后刷新文件。您需要使用flush
:
>>> f.flush()
或使用close
自行关闭它:
>>> f.close()
在真实程序中使用文件时,建议使用with
:
with open('some file.txt', 'w') as f:
f.write('some text')
# ...
这确保即使抛出异常也会关闭文件。但是,如果你想在REPL中工作,你可能希望坚持手动关闭它,因为在尝试执行它之前它会尝试读取整个with
。
答案 1 :(得分:5)
您需要关闭文件:
>>> f.close()
此外,我建议您使用with
关键字打开文件:
with open("/export/home/vignesh/resres.txt","w") as f:
f.write("hello world")
f.write("\t".join(["hello","world"]))
它会自动关闭它们。