在Python中将base64字符串写入文件无法正常工作

时间:2018-12-06 12:24:22

标签: file base64

我从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))

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

1 个答案:

答案 0 :(得分:2)

此行返回字节:

file_content=base64.b64decode(file_content)

在python3中运行此脚本,它返回以下指令:

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

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

b"ola mundo".decode("utf-8") 

尝试

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))