类文件对象打开后是否需要关闭
python中的文件对象打开后毋庸置疑需要关闭。类文件对象like-file打开后,需要特别指定关闭么?案例1:fobj = sys.stdin
content = fobj.read()
还需要特别指定fobj.close()嘛?
案例2: os.popen()和subprocess.Popen()这类返回对象也是类文件对象,需要指定关闭嘛 案例1:不需要。 1. 标准输入流不需要关闭
2. 需要关闭,但不关闭好像也没引发什么问题 hrp 发表于 2020-12-13 12:47
1. 标准输入流不需要关闭
2. 需要关闭,但不关闭好像也没引发什么问题
标准输入输出流,通过help查看有close方法。如果不需要关闭,为啥要定义close方法呢? 本帖最后由 hrp 于 2020-12-13 22:47 编辑
拖地喵 发表于 2020-12-13 19:37
标准输入输出流,通过help查看有close方法。如果不需要关闭,为啥要定义close方法呢?
不需要和不能是两回事,可以关闭,但没那个必要,但总有特殊需求要关闭的时候,close方法总不能没有吧。
如果你sys.stdin.close()关闭了标准输入流,调用input函数还是会自动重新打开的,但调用sys.stdin.readline()就会报错,到时候还是要手动打开。
贯穿整个程序生命周期的标准输入输出流和标准错误流,没必要总是关闭又打开。 及时关闭文件的目的是为了把还在内存中的内容及时写入磁盘保存,预防陷入写代码时断电的痛苦
页:
[1]