• Python使用filetype精确判断文件类型 (文件类型获取)


    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 .

    一个小巧自由开放Python开发包,主要用来获得文件类型。包要求Python 3.+

    功能特色

    •简单友好的API
    •支持宽范围文件类型
    •提供文件扩展名和MIME类型判断
    •文件的MIME类型扩展新增
    •通过文件(图像、视频、音频…)简单分析
    •可插拔:添加新的自定义类型的匹配
    •快,即使处理大文件
    •只需要前261个字节表示的最大文件头,这样你就可以通过一个单字节
    •依赖自由(只是Python代码,没有C的扩展,没有libmagic绑定)
    •跨平台文件识别

    安装

    pip install filetype

    API

    详情请查看 annotated API reference .

    实例

    简单的文件类型识别 

    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
  • 相关阅读:
    系统可靠性计算
    jira与readmine区别
    linux下批量替换文件内容
    JMeter学习(十九)JMeter测试MongoDB
    mongoVUE1.5.3 破解方法
    Junit使用GroboUtils进行多线程测试
    JMeter学习(十八)JMeter测试Java(二)
    JMeter学习(十七)JMeter测试Java
    Tomcat 和 Resin 比较,哪个更适合你?
    JMeter学习(十四)JMeter监控Tomcat性能
  • 原文地址:https://www.cnblogs.com/zhaoyingjie/p/8452934.html
Copyright © 2020-2023  润新知