最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用python制作一款文件粉碎工具

 更新時間:2025年08月22日 09:32:37   作者:小木_.  
這篇文章主要為大家詳細(xì)介紹了如何使用python制作一款文件粉碎工具,能夠有效粉碎密碼文件和機(jī)密Excel表格等,感興趣的小伙伴可以了解一下

文件粉碎工具:適用于粉碎密碼文件和機(jī)密的escel表格等等,主要作用就是防止 別人用數(shù)據(jù)恢復(fù)大師把你剛刪除的機(jī)密的文件恢復(fù)過來,造成密碼丟失等。

程序原理:修改內(nèi)部數(shù)據(jù),使用open函數(shù) 強(qiáng)制替換填充數(shù)據(jù)并保存,然后進(jìn)行刪除。

基本無法恢復(fù),除非某軟件有自動備份功能。

廢話不多說,看圖 上代碼 

完整代碼:

"""
安裝 ttkbootstrap 模塊
pip install ttkbootstrap
安裝 windnd 模塊
pip install windnd
安裝 shutil 模塊
pip install shutilwhich
"""

import ttkbootstrap as ttk
from ttkbootstrap.constants import *
import os
import windnd
from threading import Thread
import shutil

# 實例化創(chuàng)建應(yīng)用程序窗口
root = ttk.Window(
        title="Shredding Documents",        # 設(shè)置窗口的標(biāo)題
        themename="litera",     # 設(shè)置主題
        size=(612,288),        # 窗口的大小
        position=(612,288),     # 窗口所在的位置
        minsize=(612,288),          # 窗口的最小寬高
        maxsize=(612,288),    # 窗口的最大寬高
        resizable=None,         # 設(shè)置窗口是否可以更改大小
        alpha=1.0,              # 設(shè)置窗口的透明度(0.0完全透明)
        )
root.iconbitmap(f"picture.ico")

# 標(biāo)簽
ttk.Label(root, text="將文件推拽到此窗口內(nèi)↓↓↓         提示:請不要放系統(tǒng)文件和盤符     【粉碎前需關(guān)閉文件或程序,否則會異?!?,bootstyle=DANGER).place(x=14,y=20)
ttk.Label(root, text="作者:小木_.\t郵箱:QHJ_WZ@163.com",bootstyle=SECONDARY).place(x=14,y=260)

# 文件夾數(shù)量展示
var_Display_volume = ttk.StringVar()
Display_volume = ttk.Label(root, textvariable=var_Display_volume).place(x=14, y=180)
var_Display_volume.set('文件數(shù)量:0\t文件夾數(shù)量:0\t總數(shù)據(jù):0\n執(zhí)行成功:0\t異常文件:0')
# 線程檢測
var_Line = ttk.StringVar()
Line = ttk.Label(root, textvariable=var_Line).place(x=534, y=260)
var_Line.set('等待執(zhí)行...')

# 窗口展示內(nèi)容
text = ttk.Text(root,width=84, heigh=6)
text.pack(padx=0,pady=50)
text.insert('insert','將想要粉碎的文件拖進(jìn)此窗口內(nèi)?。?!')   # 插入內(nèi)容
text['state'] = 'disabled'  # 【禁用】 disabled   可用 normal

# 文件   -- 主
files_A = []
# 文件夾
folder_A = []
# 臨時文件夾   -- 主
folder_B = []
# 異常文件
G = []
# 拖拽觸發(fā)DEF
def Dragoon(files):
    global files_A,folder_A,folder_B,G
    # 初始化文件
    files_A = []
    # 初始化文件夾
    folder_A = []
    # 初始化臨時文件夾
    folder_B = []
    # 初始化異常文件
    G = []

    text['state'] = 'normal'   # 【可用】 禁用 disabled   可用 normal
    text.delete("0.0", 'end')  # 刪除全部內(nèi)容

    # 將拖拽的文件循環(huán)便利出來并解碼 存儲到列表內(nèi)
    for a in files:
        a = a.decode('gbk')  # 解碼
        if os.path.isfile(a) == False:  # 檢測是否是文件 是文件True 否則False
            folder_A = folder_A + [a]   # 將文件夾路徑存儲起來
        else:
            text.insert('insert', str(a).replace('\\','/')+"\n")   # 打印出來文件路徑
            files_A = files_A + [str(a).replace('\\','/')]       # 存儲文件路徑
    # 循環(huán)遍歷出文件夾內(nèi)的所有文件和文件夾
    for _a_ in folder_A:
        for a in os.walk(str(_a_).replace('\\','/')):   # 找出所有的文件夾內(nèi)的文件和文件夾
            # 文件夾
            folder_B = [a[0].replace('\\', '/')] + folder_B     # 存儲文件夾路徑  順序不可錯
            for aa in a[2]:    # 文件路徑
                text.insert('insert', os.path.join(a[0], aa).replace('\\', '/') + "\n")    # 將文件夾路徑和文件合并在一起 成為文件路徑
                # 文件
                files_A = files_A + [os.path.join(a[0], aa).replace('\\', '/')]    # 存儲文件路徑
    # 將保存的文件夾路徑遍歷打印出來
    for a in folder_B:
        text.insert('insert', a+'\n')    # 文件夾路徑
    # 文件數(shù)量和文件夾數(shù)量
    var_Display_volume.set(f'文件數(shù)量:{len(files_A)}\t文件夾數(shù)量:{len(folder_B)}\t總數(shù)據(jù):{len(files_A)+len(folder_B)}\n執(zhí)行成功:0\t異常文件:0')
    text['state'] = 'disabled'  # 【禁用】 禁用disabled   可用normal
# 刪除文件
def Delete_File(FILE):
    global G
    if os.path.isfile(FILE) == True:    # 判斷是否存在文件
        try:
            W_file = open(FILE, 'w')
            W_file.write('1')
            W_file.close()
            os.remove(FILE)  # 刪除文件
            text['state'] = 'normal'  # 【可用】 禁用 disabled   可用 normal
            text.insert('insert', '· 處理完成 >>' + FILE + '\n')  # 插入內(nèi)容
            text.see(ttk.END)  # 光標(biāo)跟隨著插入的內(nèi)容移動
            text['state'] = 'disabled'  # 【禁用】 disabled   可用 normal
        except:
            try:
                os.remove(FILE)  # 刪除文件
            except:
                G = G + ['【異常未處理】 >>'+FILE]   # 異常文件
    else:
        G = G + ['【異常未處理】 >>'+FILE]   # 異常文件
# 刪除文件夾
def Delete_folders(FILE):
    global G
    if os.path.isfile(FILE) == False:    # 判斷是否存在文件
        if os.path.exists(FILE) == True:
            try:
                os.rmdir(FILE)   # 刪除一個空目錄
                text['state'] = 'normal'  # 【可用】 禁用 disabled   可用 normal
                text.insert('insert', '· 處理完成 >>'+FILE+'\n')  # 插入內(nèi)容
                text.see(ttk.END)  # 光標(biāo)跟隨著插入的內(nèi)容移動
                text['state'] = 'disabled'  # 【禁用】 disabled   可用 normal
            except:
                G = G + ['【異常未處理】 >>'+FILE]  # 異常文件
        else:
            G = G + ['【異常未處理】 >>'+FILE]  # 異常文件
    else:
        G = G + ['【異常未處理】 >>'+FILE]  # 異常文件
# def執(zhí)行  -  主
def DEFG():
    def T():
        if var_Line.get() == '執(zhí)行中...':
            pass
        else:
            text['state'] = 'normal'  # 【可用】 禁用 disabled   可用 normal
            text.delete("0.0", 'end')  # 刪除內(nèi)容
            text['state'] = 'disabled'  # 【禁用】 disabled   可用 normal
            var_Line.set('執(zhí)行中...')
            # 刪除文件
            for a in files_A:
                # 刪除文件
                Delete_File(a)
            # 刪除文件夾
            for a in folder_B:
                Delete_folders(a)  # 刪除文件夾
            for A in G:
                text['state'] = 'normal'  # 【可用】 禁用 disabled   可用 normal
                text.insert('insert', f'{A}\n')  # 插入內(nèi)容
                text.see(ttk.END)  # 光標(biāo)跟隨著插入的內(nèi)容移動
                text['state'] = 'disabled'  # 【禁用】 disabled   可用 normal
            var_Display_volume.set(f'文件數(shù)量:{len(files_A)}\t文件夾數(shù)量:{len(folder_B)}\t總數(shù)據(jù):{len(files_A)+len(folder_B)}\n執(zhí)行成功:{len(files_A)+len(folder_B)-len(G)}\t異常文件:{len(G)}')
            var_Line.set('等待執(zhí)行...')
    Thread(target=T).start()

# 按鈕
ttk.Button(text="一鍵粉碎",width=20,command=DEFG).pack()

# 拖拽模塊
windnd.hook_dropfiles(root, func=Dragoon)

if __name__ == '__main__':
    root.mainloop()

以上就是使用python制作一款文件粉碎工具的詳細(xì)內(nèi)容,更多關(guān)于python文件粉碎的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python玩轉(zhuǎn)PDF的各種騷操作

    Python玩轉(zhuǎn)PDF的各種騷操作

    Portable Document Format(可移植文檔格式),或者PDF是一種文件格式,可以用于跨操作系統(tǒng)的呈現(xiàn)和文檔交換。這篇文章主要介紹了Python玩轉(zhuǎn)PDF的各種騷操作,需要的朋友可以參考下
    2019-05-05
  • Matplotlib繪制子圖的常見幾種方法

    Matplotlib繪制子圖的常見幾種方法

    Matplotlib的可以把很多張圖畫到一個顯示界面,在作對比分析的時候非常有用。本文就介紹了幾種方法,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Python中的數(shù)據(jù)分組統(tǒng)計、分組運(yùn)算及透視方式

    Python中的數(shù)據(jù)分組統(tǒng)計、分組運(yùn)算及透視方式

    這篇文章主要介紹了Python中的數(shù)據(jù)分組統(tǒng)計、分組運(yùn)算及透視方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Pycharm+Scrapy安裝并且初始化項目的方法

    Pycharm+Scrapy安裝并且初始化項目的方法

    今天小編就為大家分享一篇Pycharm+Scrapy安裝并且初始化項目的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 關(guān)于python與opc ua Expert endpoint連接的問題

    關(guān)于python與opc ua Expert endpoint連接的問題

    這篇文章主要介紹了關(guān)于python與opc ua Expert endpoint連接的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • pandas 數(shù)據(jù)實現(xiàn)行間計算的方法

    pandas 數(shù)據(jù)實現(xiàn)行間計算的方法

    今天小編就為大家分享一篇pandas 數(shù)據(jù)實現(xiàn)行間計算的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 終端命令查看TensorFlow版本號及路徑的方法

    終端命令查看TensorFlow版本號及路徑的方法

    今天小編就為大家分享一篇終端命令查看TensorFlow版本號及路徑的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 基于sklearn實現(xiàn)Bagging算法(python)

    基于sklearn實現(xiàn)Bagging算法(python)

    這篇文章主要為大家詳細(xì)介紹了基于sklearn實現(xiàn)Bagging算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 基于Python實現(xiàn)一個簡易的數(shù)據(jù)管理系統(tǒng)

    基于Python實現(xiàn)一個簡易的數(shù)據(jù)管理系統(tǒng)

    為了方便的實現(xiàn)記錄數(shù)據(jù)、修改數(shù)據(jù)沒有精力去做一個完整的系統(tǒng)去管理數(shù)據(jù)。因此,在python的控制臺直接實現(xiàn)一個簡易的數(shù)據(jù)管理系統(tǒng),包括數(shù)據(jù)的增刪改查等等。感興趣的可以跟隨小編一起學(xué)習(xí)一下
    2021-12-12
  • Elasticsearch文檔索引基本操作增刪改查示例

    Elasticsearch文檔索引基本操作增刪改查示例

    這篇文章主要為答案及介紹了Elasticsearch文檔索引基本操作增刪改查示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04

最新評論

威宁| 正镶白旗| 榆树市| 托克托县| 西贡区| 广饶县| 永泰县| 桂东县| 湖南省| 中宁县| 马山县| 日照市| 铁力市| 堆龙德庆县| 霸州市| 丘北县| 金堂县| 泰兴市| 东丽区| 阳西县| 凉城县| 通榆县| 浦城县| 万山特区| 漳浦县| 高州市| 印江| 囊谦县| 哈巴河县| 德清县| 龙口市| 句容市| 石林| 水城县| 大英县| 姚安县| 汶川县| 鹤壁市| 确山县| 通河县| 积石山|