在python中将base64字符串写入文件不起作用

Ash*_*ani 6 base64 file

我从 POST 请求中得到一个 base64 编码的字符串。我想在解码后将它存储在我的文件系统中的特定位置。所以我写了这段代码,

try:
   file_content=base64.b64decode(file_content)
   with open("/data/q1.txt","w") as f:
        f.write(file_content)
except Exception as e:
   print(str(e))
Run Code Online (Sandbox Code Playgroud)

这是在 /data/ 创建文件,但文件是空的。它不包含解码的字符串。没有权限问题。但是当我不是 file_content 将“Hello World”写入文件时。这是工作。为什么python无法将base64解码的字符串写入文件?它也没有抛出任何异常。处理 base64 格式时有什么需要注意的吗?

Luc*_*nde 13

这一行返回字节:

file_content=base64.b64decode(file_content)
Run Code Online (Sandbox Code Playgroud)

在 python3 中运行这个脚本,它返回这个执行:

write() 参数必须是 str,而不是字节

您应该将字节转换为字符串:

b"ola mundo".decode("utf-8") 
Run Code Online (Sandbox Code Playgroud)

尝试一下

import base64

file_content = 'b2xhIG11bmRv'
try:
   file_content=base64.b64decode(file_content)
   with open("data/q1.txt","w+") as f:
        f.write(file_content.decode("utf-8"))
except Exception as e:
   print(str(e))
Run Code Online (Sandbox Code Playgroud)

  • 图像是字节,所以当你保存它时它也必须是字节,我认为你不需要使用解码。但是您必须以字节写入模式打开文件。在打开的情况下(“data/q1.jpg”,“wb”) (2认同)