如何从Base64字符串获取文件类型?求适用于Windows与Linux(CentOS7)的解决方案
Python实现Base64文本文件解码
嘿,我来帮你搞定这个Base64解码的问题!你提到的字符串eHh4eHh4其实就是Base64编码后的内容,对应明文xxxxxx,Python确实能轻松实现这个功能,而且不用依赖那些你试过的magic、imghdr库——毕竟这本质就是Base64编解码操作,和文件类型识别没什么关系。
下面给你两种常见场景的实现代码:
直接解码字符串并输出/保存
如果你的编码内容是已知的字符串,直接用内置的base64模块就能处理:
import base64 # 待解码的Base64字符串 encoded_str = "eHh4eHh4" # 解码:先将字符串转为字节,再执行Base64解码 decoded_bytes = base64.b64decode(encoded_str) # 因为是文本内容,转成UTF-8字符串 decoded_text = decoded_bytes.decode('utf-8') print(decoded_text) # 会输出: xxxxxx # 把解码后的内容写入文本文件 with open('decoded_result.txt', 'w', encoding='utf-8') as f: f.write(decoded_text)
从文件读取编码内容并解码
如果你的Base64编码内容存在文本文件里,比如文件里只存了eHh4eHh4,可以这样处理:
import base64 # 读取编码文件的内容 with open('encoded_file.txt', 'r', encoding='utf-8') as f: encoded_str = f.read().strip() # 去掉可能的换行符 # 解码并写入新文件 decoded_bytes = base64.b64decode(encoded_str) # 这里用wb模式写入,确保二进制数据正确保存(如果是文本的话,用w模式转成字符串也可以) with open('decoded_file.txt', 'wb') as f: f.write(decoded_bytes)
至于你之前尝试的magic和imghdr库,它们的作用是识别文件的类型(比如判断是图片还是文本),和Base64解码完全是两回事,所以用在这儿自然没效果啦~
内容的提问来源于stack exchange,提问作者Oksana Ok
相关产品推荐
相关产品推荐

