我是Python的新手,所以希望我在这里错过了一些明显的东西,但它让我困惑。下面是我的程序片段:
outFile = open('P4Output.txt', 'w')
outFile.write(output)
print output
print "Output saved to \"P4Output.txt\"\n"
输出正确地打印到控制台,但是如果我打开文件,它是空白的。如果我删除了这个文件并再次执行我的程序,这个文件被创建了,但仍然是空的。我以前在我的另一个程序中使用了这个完全相同的代码块,它工作了,现在仍然工作。但是,如果我打开Python并尝试一些简单的操作,比如:
f = open('test.txt', 'w')
f.write("test")
再次创建test.txt,但将其留空。怎么了?
5条答案
按热度按时间0qx6xfy61#
你记得在程序结束时输入
f.close()
吗?tsm1rwdh2#
由于缓冲的原因,字符串实际上可能不会显示在文件中,直到您调用
flush()
或close()
。所以尝试在f.write()
之后调用f.close()
。另外,建议将with
与文件对象一起使用,即使由于异常或return
语句而提前中断了with
块,它也会自动关闭文件。fumotvh33#
你需要做一个
如果您希望将缓冲的内容写入磁盘。如果您完成了对文件的写入,
file.close
调用将在关闭文件之前隐式地刷新缓冲的数据。vulvrdjw4#
尝试将您的语句包含在
try
/except
块中,以了解在打开或写入文件期间是否发生了某些情况:并始终关闭文件,以便系统可以在关闭文件之前将数据刷新到文件中。
a8jjtwal5#
也许你应该使用绝对路径而不是相对路径。