【问题标题】:How do I use python-magic to get the file type of a file over the Internet?如何使用 python-magic 通过 Internet 获取文件的文件类型?
【发布时间】:2011-06-08 08:26:51
【问题描述】:

通常我会将它下载到 StringIO 对象,然后运行:

m = magic.Magic()
m.from_buffer(thefile.read(1024))

但这一次,我无法下载文件,因为图像可能有 20 兆字节。我想使用 Python 魔法来查找文件类型而不下载整个文件

如果 python-magic 做不到...是观察标题中 mime 类型的下一个最佳方法吗?但这有多准确?

我需要准确性。

【问题讨论】:

    标签: python string image http file


    【解决方案1】:

    您可以拨打read(1024)而不下载整个文件:

    thefile = urllib2.urlopen(someURL)
    

    然后,只需使用您现有的代码。 urlopen 返回一个类似文件的对象,所以这很自然。

    【讨论】:

      【解决方案2】:

      如果它是常见的图像格式之一,例如 png 或 jpg,并且您看到服务器是可靠的,那么您可以使用 'Content-Type' 标头来提供您要查找的内容。

      但这并不像使用文件的一部分并将其传递给 python-magic 那样可靠,因为如果服务器没有识别出正确的格式并且它可能已将其设置为 application/octet-stream。这在视频格式中比较常见,但是图片,我觉得Content-Type还可以。

      抱歉,我找不到任何有关 Content-Type 准确性的统计数据或研究。仅下载部分文件的建议答案也是一个不错的选择。

      【讨论】:

        猜你喜欢
        • 2016-09-04
        • 1970-01-01
        • 1970-01-01
        • 2014-11-13
        • 1970-01-01
        • 2011-01-17
        • 1970-01-01
        • 2011-06-08
        • 2011-05-16
        相关资源
        最近更新 更多