Python:在文件中解码base64多个字符串

时间:2015-02-27 14:32:59

标签: python

我是python的新手,我有一个这样的文件:

cw==ZA==YQ==ZA==YQ==cw==ZA==YQ==cw==ZA==YQ==cw==ZA==YQ==cw==ZA==dA==ZQ==cw==dA==

它是一个键盘输入,用base64编码,新的我想解码它 我尝试这个代码是在第一个字符解码时停止。

import base64

file = "my_file.txt"
fin = open(file, "rb")
binary_data = fin.read()
fin.close()
b64_data = base64.b64decode(binary_data)
b64_fname = "original_b64.txt"
fout = open(b64_fname, "w")
fout.write(b64_data)
fout.close

欢迎任何帮助。感谢

1 个答案:

答案 0 :(得分:1)

我假设您自己创建了测试输入字符串。

如果我将测试输入字符串拆分为4个字符的块并将每个字符分开解析,我会得到以下内容:

>>> import base64
>>> s = 'cw==ZA==YQ==ZA==YQ==cw==ZA==YQ==cw==ZA==YQ==cw==ZA==YQ==cw==ZA==dA==ZQ==cw==dA=='
>>> ''.join(base64.b64decode(s[i:i+4]) for i in range(0, len(s), 4))

'sdadasdasdasdasdtest'

但是,测试字符串sdadasdasdasdasdtest的正确base64编码是:

>>> base64.b64encode('sdadasdasdasdasdtest')
'c2RhZGFzZGFzZGFzZGFzZHRlc3Q='

如果您将此字符串放在my_file.txt中(并重写您的代码更简洁一点),那么一切正常。

import base64

with open("my_file.txt") as f, open("original_b64.txt", 'w') as g:
    encoded = f.read()
    decoded = base64.b64decode(encoded)
    g.write(decoded)