Python项目的助手方法库,用于获取mime类型和常规文件类别

fttlib的Python项目详细描述


FTT Logo文件类型转换器(FTT)

Python项目的helper方法库,用于获取mime types和常规文件类别

释放

可用作pypi package

1.1.2-初始python版本

示例

导入库

fromfttlibimportFTT

当您需要根据文件扩展名知道文件的mime类型时。

^{pr2}$

当您需要根据文件扩展名知道文件的文件类型类别时。

FileCategorycategory=FTT.getFileCategory("Path/To/My/File.docx")print(category)category=FTT.getFileCategory("Path/To/My/File.jpg")print(category)>Document>Image

当您需要根据文件的mime类型知道文件的首选文件扩展名时。

string[]extensions=FTT.getMimeTypeFileExtension("text/csv")print(extensions[0])>csv

设计

该库的设计遵循以下原则:

  • 无外部依赖项
  • 无法访问文件系统
  • 内存占用小
  • 简单的静态方法(没有扩展方法和可实例化的类)
  • 不区分大小写
  • 可移植-适用于任何运行时的应用程序

文件类别

文件介质类型可分为相对较少的类别。根据Wikipedia上的信息,在将来的版本中可以考虑子类别。下面是确定文件类别的指导原则

  • 存档:可以提取成多个文件的任何文件
  • 音频:只能包含音频流的任何文件
  • 二进制:任何未分类或没有文本表示的文件
  • 代码:包含可编译或机器可读指令的任何文件
  • 文档:为在人与人之间传递结构化信息而设计的任何文件
  • 图像:只能包含单个图像或一系列图像的任何文件
  • PDF:任何被认为是文档存档格式的文件
  • 演示文稿:为电子演示设计的任何文件,由一系列单独的页面或幻灯片组成
  • 可在任何电子表格和列中使用的数据
  • 文本:任何不属于另一个类别且不是二进制的文件
  • 视频:设计成视频流容器的任何文件

已知限制

  • 即使mime类型到文件扩展名的映射不一定是一对一的,但是最常见的应该由库返回
  • 这个库不提供文件嗅探功能-换句话说,如果您有一个文件,并且您想验证内容是特定类型的,请在其他地方查找。FTT只使用带扩展名的文件名。该功能可能会在将来的版本中添加。在
  • 目前唯一考虑的文件类别是归档、音频、二进制、代码、文档、图像、PDF、演示文稿、电子表格、文本和视频。如果数据库中没有匹配项,则默认为二进制。在

来源

虽然期望这个库提供一个包含all的文件类型的综合列表是不现实的,但是如果我们能够接近它就更好了。通常,如果文件类型是远程通用的,它会列在其中一个源中。对于丢失的或您认为应该添加的文件类型,可以使用submit a bug report。你必须包括一个声誉良好的来源。在

此库的信息源通过以下方式按优先顺序提供:

  1. http://www.iana.org/assignments/media-types/media-types.xhtml
  2. https://gitlab.freedesktop.org/xdg/shared-mime-info
  3. https://cdn.rawgit.com/jshttp/mime-db/master/db.json
  4. http://www.file-extensions.org/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
图形Java仿射变换以旋转通用路径   IntelliJ IDEA中的java代码标记为编译器错误,在Eclipse中可以正常工作   java ArrayList的containsAll返回了错误的值   如何在安卓中的片段活动中添加java代码   java通过使用netbeans调用jbutton,将带有行的jbutton添加到jtable中   java在更新arrayAdapter/listView之前更新最终列表   java如何在另一个项目中导入包含AspectJ方面和注释的项目   为什么我的java布尔测试总是失败?   Eclipse中的java自动激活   在Bluetooth for Java(更具体地说是Android)之上是否有TCP/IP协议栈实现?   java Android Studio通过intent传递ArrayList并填充ListView