如何使用python magic在Internet上获取文件的文件类型?
通常我会将其下载到StringIO对象,然后运行以下操作:如何使用python magic在Internet上获取文件的文件类型?,python,string,image,http,file,Python,String,Image,Http,File,通常我会将其下载到StringIO对象,然后运行以下操作: m = magic.Magic() m.from_buffer(thefile.read(1024)) 但这一次,我无法下载该文件,因为图像可能是20兆字节。我想使用Python magic查找文件类型,而无需下载整个文件 如果PythonMagic不能做到这一点,那么在头文件中观察mime类型的下一个最佳方法是什么?但这有多准确 我需要准确性。您可以调用read(1024)而无需下载整个文件: thefile = urllib2.u
m = magic.Magic()
m.from_buffer(thefile.read(1024))
但这一次,我无法下载该文件,因为图像可能是20兆字节。我想使用Python magic查找文件类型,而无需下载整个文件
如果PythonMagic不能做到这一点,那么在头文件中观察mime类型的下一个最佳方法是什么?但这有多准确
我需要准确性。您可以调用read(1024)
而无需下载整个文件:
thefile = urllib2.urlopen(someURL)
然后,只需使用现有代码
urlopen
返回一个类似文件的对象,因此这很自然。如果它是一种常见的图像格式,如jpg的png,并且您看到服务器是可靠的,那么您可以使用'Content-Type'
头给出您要查找的内容
但这并不像使用文件的一部分并将其传递给PythonMagic那样可靠,因为若服务器并没有识别出正确的格式,它可能已经将其设置为application/octet-stream。这在视频格式中更常见,但是图片,我认为内容类型是可以的
对不起,我找不到任何关于内容类型准确性的统计或研究。建议只下载部分文件也是一个不错的选择