欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用filetype精確判斷文件類型

 更新時(shí)間:2017年07月02日 09:16:27   作者:lon.y@qq.com  
判斷文件類型在開發(fā)中非常常見的需求,怎樣才能準(zhǔn)確的判斷文件類型呢?首先大家想到的是文件的后綴,但是非常遺憾的是這種方法是非常不靠譜的,因?yàn)槲募暮缶Y是可以隨意更改的,而python中有個(gè)小插件可以實(shí)現(xiàn),下面我們就來詳細(xì)探討下

filetype.py

Small and dependency free Python package to infer file type and MIME type checking the  magic numbers signature of a file or buffer.

This is a Python port from filetype Go package. Works in Python  +3 .

一個(gè)小巧自由開放Python開發(fā)包,主要用來獲得文件類型。包要求Python 3.+

功能特色

•簡(jiǎn)單友好的API
•支持寬范圍文件類型
•提供文件擴(kuò)展名和MIME類型判斷
•文件的MIME類型擴(kuò)展新增
•通過文件(圖像、視頻、音頻…)簡(jiǎn)單分析
•可插拔:添加新的自定義類型的匹配
•快,即使處理大文件
•只需要前261個(gè)字節(jié)表示的最大文件頭,這樣你就可以通過一個(gè)單字節(jié)
•依賴自由(只是Python代碼,沒有C的擴(kuò)展,沒有l(wèi)ibmagic綁定)
•跨平臺(tái)文件識(shí)別

安裝

pip install filetype

API

詳情請(qǐng)查看 annotated API reference .

實(shí)例

簡(jiǎn)單的文件類型識(shí)別

import filetype
 
def main():
 kind = filetype.guess('tests/fixtures/sample.jpg')
 if kind is None:
  print('Cannot guess file type!')
  return
 
 print('File extension: %s' % kind.extension)
 print('File MIME type: %s' % kind.mime)
 
if __name__ == '__main__':
 main()

支持類型

圖片

• jpg  –  image/jpeg
• png  –  image/png
• gif  –  image/gif
• webp  –  image/webp
• cr2  –  image/x-canon-cr2
• tif  –  image/tiff
• bmp  –  image/bmp
• jxr  –  image/vnd.ms-photo
• psd  –  image/vnd.adobe.photoshop
• ico  –  image/x-icon

視頻

• mp4  –  video/mp4
• m4v  –  video/x-m4v
• mkv  –  video/x-matroska
• webm  –  video/webm
• mov  –  video/quicktime
• avi  –  video/x-msvideo
• wmv  –  video/x-ms-wmv
• mpg  –  video/mpeg
• flv  –  video/x-flv

音頻

• mid  –  audio/midi
• mp3  –  audio/mpeg
• m4a  –  audio/m4a
• ogg  –  audio/ogg
• flac  –  audio/x-flac
• wav  –  audio/x-wav
• amr  –  audio/amr

資料庫

• epub  –  application/epub+zip
• zip  –  application/zip
• tar  –  application/x-tar
• rar  –  application/x-rar-compressed
• gz  –  application/gzip
• bz2  –  application/x-bzip2
• 7z  –  application/x-7z-compressed
• xz  –  application/x-xz
• pdf  –  application/pdf
• exe  –  application/x-msdownload
• swf  –  application/x-shockwave-flash
• rtf  –  application/rtf
• eot  –  application/octet-stream
• ps  –  application/postscript
• sqlite  –  application/x-sqlite3
• nes  –  application/x-nintendo-nes-rom
• crx  –  application/x-google-chrome-extension
• cab  –  application/vnd.ms-cab-compressed
• deb  –  application/x-deb
• ar  –  application/x-unix-archive
• Z  –  application/x-compress
• lz  –  application/x-lzip

字體

• woff  –  application/font-woff
• woff2  –  application/font-woff
• ttf  –  application/font-sfnt
• otf  –  application/font-sfnt

基準(zhǔn)測(cè)試

使用鏈接中的文件進(jìn)行測(cè)試,你可以點(diǎn)擊獲得到它: real files .

Environment: OSX x64 i7 2.7 Ghz
------------------------------------------------------------------------------------------ benchmark: 7 tests ------------------------------------------------------------------------------------------
Name (time in ns)                       Min                     Max                   Mean                StdDev                 Median                   IQR            Outliers(*)  Rounds  Iterations
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_infer_image_from_bytes        357.6279 (1.0)       29,166.5395 (1.0)       1,642.3360 (1.0)        380.9934 (1.0)       1,509.9843 (1.0)        158.9457 (1.0)       9095;13752  102301           6
test_infer_audio_from_bytes        953.6743 (2.67)      96,082.6874 (3.29)     16,534.5880 (10.07)    3,002.1143 (7.88)     15,974.0448 (10.58)      953.6743 (6.00)       4514;6051   41528           1
test_infer_video_from_bytes     13,828.2776 (38.67)    272,989.2731 (9.36)     16,151.3144 (9.83)     3,361.2320 (8.82)     15,020.3705 (9.95)       953.6743 (6.00)       2522;2887   22193           1
test_infer_image_from_disk      15,974.0448 (44.67)    108,957.2906 (3.74)     18,621.0844 (11.34)    3,895.4441 (10.22)    17,166.1377 (11.37)    1,192.0929 (7.50)       1528;1804   10206           1
test_infer_video_from_disk      23,841.8579 (66.67)    229,120.2545 (7.86)     28,691.3476 (17.47)    6,242.9901 (16.39)    25,987.6251 (17.21)    4,053.1158 (25.50)      1987;1247   15651           1
test_infer_zip_from_disk        26,941.2994 (75.33)    230,073.9288 (7.89)     32,123.3861 (19.56)    7,524.4988 (19.75)    29,087.0667 (19.26)    4,768.3716 (30.00)      1349;1292   16132           1
test_infer_tar_from_disk        33,855.4382 (94.67)    164,031.9824 (5.62)     36,884.4401 (22.46)    4,489.4443 (11.78)    36,001.2054 (23.84)      953.6743 (6.00)       1036;1828   14666           1
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

相關(guān)文章

  • Python?argparse庫的基本使用步驟

    Python?argparse庫的基本使用步驟

    argparse庫是python下的一個(gè)命令行參數(shù)管理庫,支持int、str、float、bool、數(shù)組等5種基本數(shù)據(jù)類型,這篇文章主要介紹了Python?argparse庫的基本使用,需要的朋友可以參考下
    2022-07-07
  • 基于python的列表list和集合set操作

    基于python的列表list和集合set操作

    今天小編就為大家分享一篇基于python的列表list和集合set操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python操作Excel插入刪除行的方法

    Python操作Excel插入刪除行的方法

    今天小編就為大家分享一篇Python操作Excel插入刪除行的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python學(xué)習(xí)筆記嵌套循環(huán)詳解

    Python學(xué)習(xí)筆記嵌套循環(huán)詳解

    這篇文章主要介紹了Python學(xué)習(xí)筆記嵌套循環(huán)詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • 動(dòng)感網(wǎng)頁相冊(cè) python編寫簡(jiǎn)單文件夾內(nèi)圖片瀏覽工具

    動(dòng)感網(wǎng)頁相冊(cè) python編寫簡(jiǎn)單文件夾內(nèi)圖片瀏覽工具

    這篇文章主要為大家詳細(xì)介紹了動(dòng)感網(wǎng)頁相冊(cè)的制作方法,即利用python編寫簡(jiǎn)單文件夾內(nèi)圖片瀏覽工具,感興趣的小伙伴們可以參考一下
    2016-08-08
  • python自動(dòng)發(fā)送測(cè)試報(bào)告郵件功能的實(shí)現(xiàn)

    python自動(dòng)發(fā)送測(cè)試報(bào)告郵件功能的實(shí)現(xiàn)

    這篇文章主要介紹了python自動(dòng)發(fā)測(cè)試報(bào)告郵件功能的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • 通過python在PDF中添加條形碼和二維碼的代碼詳解

    通過python在PDF中添加條形碼和二維碼的代碼詳解

    在PDF中添加條碼是一個(gè)常見需求,特別是在需要自動(dòng)化處理、跟蹤或檢索PDF文件時(shí),作為一種機(jī)器可讀的標(biāo)識(shí)符,PDF中的條碼可以包含各種類型的信息,本文介紹了如何使用Python在PDF中添加條形碼或二維碼,需要的朋友可以參考下
    2024-08-08
  • 查看keras各種網(wǎng)絡(luò)結(jié)構(gòu)各層的名字方式

    查看keras各種網(wǎng)絡(luò)結(jié)構(gòu)各層的名字方式

    這篇文章主要介紹了查看keras各種網(wǎng)絡(luò)結(jié)構(gòu)各層的名字方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 淺談Python的元編程

    淺談Python的元編程

    提到元這個(gè)字,你也許會(huì)想到元數(shù)據(jù),元數(shù)據(jù)就是描述數(shù)據(jù)本身的數(shù)據(jù),元類就是類的類,本文的主要目的是向大家介紹這些元編程技術(shù),并且給出實(shí)例來演示它們是怎樣定制化源代碼的行為。剛興趣的朋友可以參考一下
    2021-09-09
  • Python處理字符串中文(漢字)編碼的實(shí)例

    Python處理字符串中文(漢字)編碼的實(shí)例

    這篇文章主要介紹了Python處理字符串中文(漢字)編碼的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04

最新評(píng)論