我有一个简单的代码块,打开一个文件,然后在运行for
循环后关闭该文件。你知道吗
但是,它似乎没有释放文件,因为下面的行位于循环下面并关闭
print os.stat('/root/message').st_size
显示为0
。如果我做一个ls -l
,它会显示文件大小,我可以cat
输出文件,它有正确的内容。你知道吗
这是代码块。你知道吗
#!/usr/bin/python
import os
objects = { 'dave' : 'builder' , 'fred' : 'cobbler' , 'frank' : 'shoplifter' }
log = open('/root/jam' , 'w')
for bloke in objects:
log.write("%s is a %s \n" % (bloke, objects[bloke]))
log.close
print os.stat('/root/jam').st_size
我做错什么了?你知道吗
不知道写模式有什么问题,但可以使用“r+”完成。你知道吗
其他模式可以在http://www.tutorialspoint.com/python/python_files_io.htm上看到
您忘记调用
file.close
方法;添加()
不仅引用该方法,而且实际调用它:否则Python会在脚本结束时自动关闭文件,这就是为什么
ls -l
和cat
命令会显示文件的大小和内容。你知道吗您也可以将file对象用作context manager, using the ^{} statement ;一旦
with
块结束,文件将为您关闭:相关问题 更多 >
编程相关推荐