Python项目的助手方法库,用于获取mime类型和常规文件类别
fttlib的Python项目详细描述
文件类型转换器(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。你必须包括一个声誉良好的来源。在
此库的信息源通过以下方式按优先顺序提供:
- http://www.iana.org/assignments/media-types/media-types.xhtml
- https://gitlab.freedesktop.org/xdg/shared-mime-info
- https://cdn.rawgit.com/jshttp/mime-db/master/db.json
- http://www.file-extensions.org/
- 项目
标签: