我对Python很新,所以我希望我在这里找不到明显的东西,但它让我难过.我的程序片段如下:
outFile = open('P4Output.txt', 'w')
outFile.write(output)
print output
print "Output saved to \"P4Output.txt\"\n"
Run Code Online (Sandbox Code Playgroud)
输出正确打印到控制台,但如果我打开文件它是空白的.如果我删除文件并再次执行我的程序,则会创建该文件但仍为空.我在之前的另一个程序中使用了这个完全相同的代码块,并且它可以工作,并且仍然有效.但是,如果我打开Python并尝试一些简单的方法:
f = open('test.txt', 'w')
f.write("test")
Run Code Online (Sandbox Code Playgroud)
同样,test.txt已创建,但保留为空白.是什么赋予了?
hug*_*omg 42
你f.close()在课程结束时做了什么?
zee*_*kay 34
由于缓冲,在您调用flush()或之前,字符串可能实际上不会显示在文件中close().因此,尝试调用f.close()后f.write().with建议使用文件对象,即使with由于异常或return语句而提前退出块,它也会自动为您关闭文件.
with open('P4Output.txt', 'w') as f:
f.write(output)
Run Code Online (Sandbox Code Playgroud)
tzo*_*zot 11
你需要做一个
outFile.flush()
Run Code Online (Sandbox Code Playgroud)
如果您希望将缓冲的内容写入磁盘.如果您已完成对文件的写入,则file.close在关闭文件之前,调用将隐式刷新缓冲的数据.
小智 5
尝试将您的语句括在 try / catch 块中,以了解在打开或写入文件期间是否发生了某些事情:
try:
outFile = open('P4Output.txt','w')
outFile.write(output)
outFile.close()
except IOError as (errno,strerror):
print "I/O error({0}): {1}".format(errno, strerror)
Run Code Online (Sandbox Code Playgroud)
并始终关闭您的文件,以便系统可以在关闭之前将您的数据刷新到文件中。
| 归档时间: |
|
| 查看次数: |
55850 次 |
| 最近记录: |