2024-03-28 17:48:06 发布
网友
Possible Duplicate:Does a File Object Automatically Close when its Reference Count Hits Zero?
我了解到需要关闭文件对象,但有人能提供一个非常简单的示例(代码示例),其中错误是由于不关闭文件对象造成的吗?你知道吗
您是否在询问如果您无法关闭文件,Python是否会引发错误?那么答案是“不”。你知道吗
如果你问自己是否会丢失数据,答案是“是”。你知道吗
打个比方,如果你把钥匙留在点火开关里,警察会给你开罚单吗?不。 这种做法会增加你“丢”车的几率吗?对。你知道吗
编辑:
好吧,你要的是一个例子,而不是聪明的阿莱克评论。这里是一个例子,虽然有点做作,因为这样做比调查缓冲区大小的情况更容易。你知道吗
好:
fh = open("erase_me.txt", "w") fh.write("Hello there!") fh.close() # Writes "Hello there!" to 'erase_me.txt' # tcsh-13: cat erase_me.txt # Hello there!tcsh-14:
坏:
import os fh = open("erase_me.txt", "w") fh.write("Hello there!") # Whoops! Something bad happened and my program bombed! os._exit(1) fh.close() # tcsh-19: cat erase_me.txt # tcsh-20: ll erase_me.txt # -rw-r--r-- 1 me us 0 Jul 17 15:41 erase_me.txt # (Notice file length = 0)
如果您正在将数据写入一个文件,并且由于该文件没有正确关闭(缓冲区被刷新),最后输出文件没有包含您写入的所有数据,您可能会观察到这种情况。你知道吗
这里有一个关于这个问题的最近的例子Python not writing full string to file。你知道吗
请注意,这个问题不是Python独有的,其他语言也可能遇到这个问题(例如,我在C语言中不止一次遇到过这个问题)
在某些操作系统上,将大量数据写入文件而不关闭文件会导致在libc将其撕下时无法刷新数据,从而导致文件被截断。你知道吗
您是否在询问如果您无法关闭文件,Python是否会引发错误?那么答案是“不”。你知道吗
如果你问自己是否会丢失数据,答案是“是”。你知道吗
打个比方,如果你把钥匙留在点火开关里,警察会给你开罚单吗?不。 这种做法会增加你“丢”车的几率吗?对。你知道吗
编辑:
好吧,你要的是一个例子,而不是聪明的阿莱克评论。这里是一个例子,虽然有点做作,因为这样做比调查缓冲区大小的情况更容易。你知道吗
好:
坏:
如果您正在将数据写入一个文件,并且由于该文件没有正确关闭(缓冲区被刷新),最后输出文件没有包含您写入的所有数据,您可能会观察到这种情况。你知道吗
这里有一个关于这个问题的最近的例子Python not writing full string to file。你知道吗
请注意,这个问题不是Python独有的,其他语言也可能遇到这个问题(例如,我在C语言中不止一次遇到过这个问题)
在某些操作系统上,将大量数据写入文件而不关闭文件会导致在libc将其撕下时无法刷新数据,从而导致文件被截断。你知道吗
相关问题 更多 >
编程相关推荐