0

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

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。

4

2 回答 2

0

Keeping aside all the other factors like

  • Securing the channel of data transfer

  • Checking the file permissions

  • Checking the file attributes so that application can trust the file

  • Secure Design

  • Time of Check Versus Time of Use for temporary files

    etc etc

If you want to pickup preference between just two opening the file once or opening the file multiple times for a operation.

My pick would be open the file only once. The more times you open a file the more time you will have to go through ensuring security checks.

于 2013-02-19T06:35:18.180 回答
0

open通常一个人只想要close一个文件一次。主要原因是性能。如果您担心“安全性”,您会提到脚本的意外结束,我将其称为“稳定性问题”,然后flush每次写入脚本但不要关闭它。然后,如果您的脚本保释了书面内容仍然是安全的,并且文件在清理过程中只是关闭了。

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

于 2013-02-19T06:12:32.350 回答