是多次打开/关闭一个文件更好,还是一劳永逸



如果我必须在脚本中多次处理一个文件。基本上,如果我需要在剧本的开头读它,并在结尾写它。这样做更好吗:

f = open("myfile", "r")
lines = f.readlines()
f.close()
# ...
# Edit some lines
# ...
f = open("myfile", "w")
f.write(lines)
f.close()

或者:

f = open("myfile", "r+")
lines = f.readlines()
# ...
# Edit some lines
# ...
f.seek(0)
f.truncate()
f.write(lines)
f.close()

我所说的"更好"是指"更安全"。我认为,如果在文件仍然打开的情况下停止进程,两个脚本都会出现安全漏洞,但在前一个脚本中发生这种情况的可能性较小。

我认为语言并不重要,但我主要使用Python。

抛开等所有其他因素

  • 保护数据传输通道

  • 检查文件权限

  • 检查文件属性,以便应用程序可以信任文件

  • 安全设计

  • 检查时间与临时文件使用时间

    等等

如果你想在两个之间选择偏好为一个操作打开一次文件或多次文件

我的选择是只打开一次文件。打开文件的次数越多,您需要进行的安全检查就越多。

通常一个文件只需要openclose一次。主要原因是性能。如果你担心"安全性",你会提到脚本的意外结束,我称之为"稳定性问题",然后每次写入脚本时都会flush你的脚本,但不要关闭它。然后,如果你的脚本退出,写入的内容仍然是安全的,文件在清理过程中会自动关闭。

该策略的一个优点还在于,您必须只检查一次访问和打开脚本的成功与否,而不必在整个脚本中一遍又一遍地执行所有这些操作。

相关内容

  • 没有找到相关文章