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类之间并发性不一致的HashMap   插件如何在JavaSwing中使用UIManager和Classloader从外部jar安装外观?   java JasperReports:找不到子报表   在项目中找不到java生成的Javadoc文件   java BigDecimal。multiply()和divide()方法返回十六进制数。为什么?   java统计出现次数并从字符串中删除重复项   调用运算符时发生java NullPointerException   Spring和Hibernate之间的java配置错误   JavaZK将用户重定向回上一页   Javasocket为传出连接指定特定的网络接口   如果拖动到某个区域外,java Make按钮操作将被取消   如何在Eclipse for selenium 3.141.59中添加Java文档链接   java从匹配条件的数组中获取所有索引   docker未连接到RemoteWebDriver的java Gitlab ci selenium测试   java重写run方法   utf 8如何使用java解码UTF8编码的字符串?   java如何从eclipse调试部署在tomcat上的web应用程序?   将字母字符与前面没有百分号的Java正则表达式匹配