【发布时间】:2016-09-28 14:35:18
【问题描述】:
我正在尝试通过标准 python 库解码一个 base64 多行文件,但是只有第一行被解码,其余的被无缘无故地转储。
这是为什么?
编码前的文件(解码后我想要实现的):
数据文件.dat
版本:BenWin+ 版本:3.0.12.1[CR]
[CR][LF]
创建时间:2016 年 9 月 1 日下午 12:56:27[CR]
[CR][LF]
时间码:0x907e0、0x10004、0x38000c、0x242001b[CR]
[CR][LF]
...
[CR] 和 [LF] 分别是回车 (\r) 和换行 (\n) 的字符代码
我使用 base64.b64encode 对文件进行 base64 编码,并希望稍后对其进行解码。这是我的代码 sn-p。
encodedData = b'VkVSU0lPTjogQmVuV2luKyBWZXJzaW9uOiAzLjAuMTIuMQo=Cg==Q1JFQVRFRDogMDEgU2VwdGVtYmVyIDIwMTYgMTI6NTY6MjcgUE0KCg==VElNRSBDT0RFOiAweDkwN2UwLCAweDEwMDA0LCAweDM4MDAwYywgMHgyNDIwMDFiCg==Cg=='
data = base64.b64decode(encodedData)
print(data)
返回
b'版本:BenWin+ 版本:3.0.12.1\n'
提前致谢。 使用 Python 3.5
【问题讨论】:
-
你自己是 Base64 编码的吗?
-
如果我可以通过正则表达式更改结束行字符,将其更改为专门的 \n 或 \r 有帮助吗?或者也许摆脱空行?
-
@PM2Ring 是的,我应该在编码操作中添加其他选项吗?
-
您不应该像那样将单个 Base64 编码的字符串连接在一起。我将很快发布一个答案,说明如何编码和解码。