0

我想检查给定文件的扩展名是否正确。例如,有人给我一个扩展名为 .zip 的文件,但实际上它可能是一个可执行文件。

使用mimetypes我无法确定文件的真实类型。据我所知,mimetypes需要扩展。

file我可以用一些扩展来映射 unix 命令的输出。即使更改扩展名,也无法欺骗file命令。但是,此解决方案需要一个子流程。

我想,这个问题可能有一个更pythonic的解决方案。有人知道吗?

4

2 回答 2

1

libmagic搜索用于该file命令的 C 库 ( ) 的名称,在 PyPI 上找到了 3 个有趣的 python 包

于 2013-08-30T21:26:02.033 回答
0

归根结底,没有绝对的认识方式。有几个原因:

  • 一些文件格式使用简单的标识符,但其他文件格式不使用。
  • 对于那些不这样做的人,唯一的方法是分析能够支持该格式的程序的行为。如果程序可以成功打开文件,那么它就属于它。
  • 但如果不是,该文件可能属于数百种您没有程序可以打开的格式。

恐怕您需要满足于部分答案,就像您已经拥有的答案一样。

于 2013-08-30T21:08:02.107 回答