Python写入文件返回空文件

时间:2013-08-04 23:39:07

标签: python python-2.7 file-io

我正在尝试使用简单的命令将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 个答案:

答案 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"]))

它会自动关闭它们。