如何自己实现文件粉碎机?

2017-08-27 11:45:29 +08:00
 explist

为什么下面的代码删除文件后,还可用 360 软件恢复回来(已亲测)?难道要用 mmap 模块吗?

#--------------------------------------------------

import tkinter.filedialog as tf

def selecFile(title='多文件选择',fmt='.'):

    '''(多个)文件选择(对话框) 返元组 取消时返空'''
    return tf.askopenfilenames(title=title,filetypes=[('all files',fmt)])

def myRemoveFiles():

'''彻底删除文件'''
paths = selecFile(title='选择要删除的文件')  #
if paths:
    if tm.askokcancel('重要提示!','确定永久删除吗?'):
        fn = '_Test{}_.tmp'
        _dir = os.path.dirname(paths[0])
        
        for i, _file in enumerate(paths):
            try:
                fsize = os.path.getsize(_file)
                with open(_file,'rb+') as f:
                    for _ in range(3):
                        f.seek(0,0)
                        f.write(os.urandom(fsize))
                         
                file = os.path.abspath(os.path.join(_dir,fn.format(i)))
                os.rename(_file,file)
                os.remove(file)
                
                print(_file,"OK")
            except Exception as err:
                print(_file,str(err))
4418 次点击
所在节点    Python
22 条回复
jhaohai
2017-08-27 19:56:42 +08:00
抹盘,全写 0 三十遍
54007
2017-08-29 00:14:24 +08:00
@jhaohai 为什么要 30 遍啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/386098

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX