繁体   English   中英

如何使用python-magic通过Internet获取文件的文件类型?

[英]How do I use python-magic to get the file type of a file over the Internet?

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

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

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

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

我需要准确性。

您可以在不下载整个文件的情况下调用read(1024)

thefile = urllib2.urlopen(someURL)

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM