打开/关闭文件多次或一次又一次更好?

时间:2013-02-19 06:08:26

标签: file security

如果我必须在脚本中多次处理文件。基本上,如果我需要在脚本的开头读取它,并在最后编写它。做得更好:

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。

2 个答案:

答案 0 :(得分:0)

通常只需要openclose一个文件。主要原因是表现。 如果你担心“安全性”,你会提到脚本的意外结束,我称之为“稳定性问题”,然后每次写入脚本时flush脚本,但不要关闭脚本。然后,如果您的脚本退出,写入的内容仍然是安全的,文件只是在清理期间关闭。

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

答案 1 :(得分:0)

暂时搁置所有其他因素,例如

  • 保护数据传输渠道
  • 检查文件权限
  • 检查文件属性,以便应用程序可以信任该文件
  • 安全设计
  • 检查时间与临时文件的使用时间

    等等

如果你想在两个之间取消偏好 打开文件一次或多次打开文件进行操作。

我的选择只会打开一次文件。打开文件的次数越多,确保安全检查的时间就越长。