是否有一个python中与unix的“file”实用程序相当的工具?

7 浏览
0 Comments

是否有一个python中与unix的“file”实用程序相当的工具?

我想在Python脚本中根据文件类型有不同的行为。由于文件扩展名可能不存在或具有误导性,因此我无法使用它。我可以调用file实用程序并解析输出,但我更愿意使用Python内置功能以实现可移植性。

因此,Python中是否有任何使用启发式算法来根据文件内容推断文件类型的功能呢?

0
0 Comments

在Unix系统中,有一个名为"file"的实用工具,它用于确定文件的类型。这个工具可以通过读取文件头部的"magic number"来判断文件的类型,但是对于一些没有文件头部的文件(如文本文件),"file"工具可能会猜测错误。为了在Python中实现类似的功能,有一些库可以使用。

其中一个库是"python-magic",可以从这里找到。另一个库是"pymagic",可以从这里找到。也可能还有其他类似的库,关键词是"magic"。

然而,这些库并不完美,因为它们也是通过读取文件头部的"magic number"来判断文件类型。对于一些没有文件头部的文件,这些库可能会猜测错误。这是所有基于内容嗅探的方法的一个共同问题。如果可接受的文件类型比库中已知的文件类型少,那么可以使用特定应用层的嗅探方法,但是对于一般情况,很难找到与"file"工具更接近的替代品。

需要注意的是,"pymagic"库似乎已经不再维护,而"python-magic"库仍然活跃。关于这个问题的一个回答可以在这里找到。

更新2014年:这两个库都已经不再维护。目前,"filemagic"库是实现类似功能的最新库,可以从这里找到。

更新2014年:我犯了一个错误。"python-magic"库仍然活跃。可以从这里找到。

0