我是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
欢迎任何帮助。感谢
答案 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)