Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python magic在Internet上获取文件的文件类型?_Python_String_Image_Http_File - Fatal编程技术网

如何使用python magic在Internet上获取文件的文件类型?

如何使用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

通常我会将其下载到StringIO对象,然后运行以下操作:

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。这在视频格式中更常见,但是图片,我认为内容类型是可以的

对不起,我找不到任何关于内容类型准确性的统计或研究。建议只下载部分文件也是一个不错的选择