ond*_*dra 225
在python中:
open('file.txt', 'w').close()
Run Code Online (Sandbox Code Playgroud)
或者,如果您已经打开了文件:
f = open('file.txt', 'r+')
f.truncate(0) # need '0' when using r+
Run Code Online (Sandbox Code Playgroud)
在C++中,您可以使用类似的东西.
Dou*_*der 13
以"写入"模式打开文件会清除它,您没有特别要写入它:
open("filename", "w").close()
Run Code Online (Sandbox Code Playgroud)
(您应该关闭它,因为文件自动关闭的时间可能是特定于实现的)
wcy*_*cyn 12
使用 时with open("myfile.txt", "r+") as my_file:
,我在 中得到奇怪的零myfile.txt
,尤其是因为我是先读取文件。为了让它工作,我必须首先my_file
用my_file.seek(0)
. 然后我可以my_file.truncate()
清除文件。
你必须覆盖该文件.在C++中:
#include <fstream>
std::ofstream("test.txt", std::ios::out).close();
Run Code Online (Sandbox Code Playgroud)
小智 6
来自用户@jamylak的另一种形式open("filename","w").close()
是
with open('filename.txt','w'): pass
Run Code Online (Sandbox Code Playgroud)
如果安全性对您来说很重要,那么打开文件进行写入并再次关闭它是不够的。至少一些信息仍将位于存储设备上并且可以例如通过使用光盘恢复实用程序来找到。
例如,假设您要删除的文件包含生产密码,需要在当前操作完成后立即删除。
使用完文件后对文件进行零填充有助于确保敏感信息被销毁。
在最近的一个项目中,我们使用了以下代码,它适用于小文本文件。它会用零行覆盖现有内容。
import os
def destroy_password_file(password_filename):
with open(password_filename) as password_file:
text = password_file.read()
lentext = len(text)
zero_fill_line_length = 40
zero_fill = ['0' * zero_fill_line_length
for _
in range(lentext // zero_fill_line_length + 1)]
zero_fill = os.linesep.join(zero_fill)
with open(password_filename, 'w') as password_file:
password_file.write(zero_fill)
Run Code Online (Sandbox Code Playgroud)
请注意,零填充并不能保证您的安全。如果您真的很担心,最好进行零填充并使用专业实用程序(例如文件粉碎机或CCleaner)来擦除驱动器上的“空白”空间。
归档时间: |
|
查看次数: |
215582 次 |
最近记录: |