Python base64数据解码和字节顺序转换

时间:2010-08-06 09:20:49

标签: python base64 byte

我现在正在使用python base64模块解码base64编码的XML文件,我所做的就是找到每个数据(其中有数千个数据,例如“ABC ....”,“ABC”。 ..“是base64编码数据)并将其添加到一个字符串,让我们说s,然后我使用base64.b64decode(s)来获得结果,我不确定解码的结果,是一个字符串,还是字节?另外,如何将这种解码数据从所谓的“网络字节顺序”转换为“主机字节顺序”?谢谢!

3 个答案:

答案 0 :(得分:2)

每个base64编码的字符串应该单独解码 - 你不能连接编码的字符串(并获得正确的解码)。
解码的结果是一个字节缓冲区的字符串 - 在Python中,它们是等价的 关于网络/主机顺序 - 字节序列,没有这样的'顺序'(或字节顺序) - 只有在将这些字节解释为更大宽度的字/整数(即大于8位)时才重要。

答案 1 :(得分:2)

Base64的东西,无论是否编码,都存储在字符串中。字节顺序只是一个问题,如果你处理非字符(C的int,短,长,浮点等),然后我不知道它将如何与这个问题相关。另外,我不认为连接base64编码的字符串是有效的。

>>> from base64 import *
>>> b64encode( "abcdefg" )
'YWJjZGVmZw=='
>>> b64decode( "YWJjZGVmZw==" )
'abcdefg'
>>> b64encode( "hijklmn" )
'aGlqa2xtbg=='
>>> b64decode( "aGlqa2xtbg==" )
'hijklmn'
>>> b64decode( "YWJjZGVmZw==aGlqa2xtbg==" )
'abcdefg'
>>> b64decode( "YWJjZGVmZwaGlqa2xtbg==" )
'abcdefg\x06\x86\x96\xa6\xb6\xc6\xd6\xe0'

答案 2 :(得分:1)

这家伙有一个很好的python b64解码器解析器http://groups.google.com/group/spctools-discuss/browse_thread/thread/a8afd04e1a04cde4

在“Python”中从mzXML中提取峰值列表