【问题标题】:File extension validation with python [duplicate]使用 python 验证文件扩展名 [重复]
【发布时间】:2024-05-17 22:25:02
【问题描述】:

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

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

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

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

【问题讨论】:

  • @JesseJ 这对我来说没问题。它可以作为文本文件处理。我想分开存档、可执行文件、库等。

标签: python linux file-extension file-type


【解决方案1】:

搜索用于file 命令的C 库名称(libmagic),网络3 interesting python packages on PyPI

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】: