2011-04-21 55 views
1

在最开始的文件类型,我试图做这样的(希望得到的头部一些有用的信息):
如何知道通过蟒蛇

 
>>content=open("fileurl","rb").read() 

我发现,PNG(PNG)的标题是LIK这样的:89504E47(我不知道wheather这是真的还是假的)
但是,当我这样做,其结果是:

 
>>> content[:20] 
'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x01\x90' 

\x是什么?
希望有人能帮助!非常感谢!

回答

4

'\x89'与值0x89不可打印字节的表示(这是137)。

至于在Python中查找文件类型,已经有mimetypes模块。

import mimetypes 
type, subtype = mimetypes.guess_type(filename_or_url) 

在行动:

>>> mimetypes.guess_type('http://upload.wikimedia.org/wikipedia/commons/9/9a/PNG_transparency_demonstration_2.png') 
('image/png', None) 
1

你看到的是一个Python字符串转义字节。 \x89表示值为89(十六进制)或137(十进制)的单个字节。

>>> ord('\x89') 
137 
>>> 0x89 
137 
>>> chr(137) 
'\x89'