亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python編寫判斷真實文件類型工具

 更新時間:2025年01月09日 10:13:24   作者:黑客白澤  
常在河邊走,哪能不濕鞋,網上獲取的各種文件后綴真真假假,甚至一不小心就會中招,所以本文就來用Python編寫一個判斷真實文件類型工具吧

1.簡介

常在河邊走,哪能不濕鞋。網上獲取的各種文件后綴真真假假,甚至一不小心就會中招。因此,決定用python寫一個能無視文件后綴的小程序,直接判斷文件類型。該工具原理使用python第三方python-magic庫,通過文件頭的MIME Type進行文件類型判斷,不用糾結文件本身的后綴。

下載文件提供源碼和exe兩種供大家使用,exe文件已在win7 x64/win10 x64下驗證過,其他系統(tǒng)請自行驗證。喜歡的話可以點個關注哦!

注:

python中運行報錯可能是未安裝python-magic導致的,需要安裝以下第三方庫文件:

pip install python-magic
pip install python-magic-bin

使用說明:

Main function:獲取當前文件的真實類型。采用MIME進行判斷,可以無視后綴的篡改。

How to Use:拖拽文件至本exe文件上 or 雙擊打開,執(zhí)行完成后會在exe目錄下生成results.txt文檔。

2.運行效果

示例圖三為三張jpg截圖,有一張篡改了后綴,一張刪除了后綴,一張維持原樣。均能識別出來文件類型。

3.相關源碼

import os
import tkinter
import magic
import sys
from tkinter import filedialog
 
def process(fnames,dirpath):
    os.chdir(dirpath)
    result = "results.txt"
    f = open(result, "w",encoding="utf-8")
    for fname in fnames:
        if os.path.exists(fname):
            if os.path.isfile(fname):
                content = "name:{}\nType:{}".format(os.path.basename(fname),
                                                    magic.from_buffer(open(fname, "rb").read(2048), mime=True))
                print(content)
                print("*" * 50)
                f.write(content + "\n")
                f.write("*" * 50 + "\n")
            else:
                print(f"{fname} is not a file")
        else:
            print(f"{fname} not found")
    f.close()
    os.startfile(result)
 
if __name__ == "__main__":
    try:
         
        # 獲取當前exe所在執(zhí)行目錄
        if hasattr(sys, 'frozen'):
            application_path = os.path.dirname(sys.executable)
        else:
            application_path = os.path.dirname(os.path.abspath(__file__))
             
        #判斷是否是拖拽模式.if yes,直接轉入處理,if no,打開UI界面
        fnames=sys.argv[1:]
        if fnames:
            process(fnames,application_path)
        else:
            root = tkinter.Tk()
            root.withdraw()
            fnames = filedialog.askopenfilenames(title='File Selection', filetypes=[ ('All Files', '*') ])
            if fnames:
                process(fnames, application_path)
    except:
        pass

到此這篇關于Python編寫判斷真實文件類型工具的文章就介紹到這了,更多相關Python文件類型判斷內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python?數據可視化實現5種炫酷的動態(tài)圖

    Python?數據可視化實現5種炫酷的動態(tài)圖

    數據可以幫助我們描述這個世界、闡釋自己的想法和展示自己的成果,但如果只有單調乏味的文本和數字,我們卻往往能難抓住觀眾的眼球。而很多時候,一張漂亮的可視化圖表就足以勝過千言萬語
    2022-01-01
  • pytorch?膨脹算法實現大眼效果

    pytorch?膨脹算法實現大眼效果

    在PS中,我們可以利用液化工具對人像進行瘦臉、放大眼睛等系列的常規(guī)操作。今天我們來了解一下這些操作的算法原理,并用pytorch?膨脹算法來實現大眼效果,感興趣的可以了解一下
    2021-11-11
  • Python實現的括號匹配判斷功能示例

    Python實現的括號匹配判斷功能示例

    這篇文章主要介紹了Python實現的括號匹配判斷功能,涉及Python棧與列表的存儲、遍歷、判斷等相關操作技巧,需要的朋友可以參考下
    2018-08-08
  • Python實現高斯函數的三維顯示方法

    Python實現高斯函數的三維顯示方法

    今天小編就為大家分享一篇Python實現高斯函數的三維顯示方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python定時采集攝像頭圖像上傳ftp服務器功能實現

    python定時采集攝像頭圖像上傳ftp服務器功能實現

    本文程序實現python定時采集攝像頭圖像上傳ftp服務器功能,大家參考使用吧
    2013-12-12
  • Python編程二分法實現冒泡算法+快速排序代碼示例

    Python編程二分法實現冒泡算法+快速排序代碼示例

    這篇文章主要介紹了Python編程二分法實現冒泡算法+快速排序代碼示例,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Python 70行代碼實現簡單算式計算器解析

    Python 70行代碼實現簡單算式計算器解析

    這篇文章主要介紹了Python 70行代碼實現簡單算式計算器解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Python chardet庫識別編碼原理解析

    Python chardet庫識別編碼原理解析

    這篇文章主要介紹了python chardet庫識別編碼原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • django之從html頁面表單獲取輸入的數據實例

    django之從html頁面表單獲取輸入的數據實例

    這篇文章主要介紹了django之從html頁面表單獲取輸入的數據實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Django中信號signals的簡單使用方法

    Django中信號signals的簡單使用方法

    這篇文章主要給大家介紹了關于Django中信號signals的簡單使用方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Django具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-07-07

最新評論