Запись строки base64 в файл в python не работает - PullRequest
0 голосов
/ 06 декабря 2018

Я получаю строку в кодировке base64 из запроса POST.Я хотел сохранить его в моей файловой системе в определенном месте после декодирования.Итак, я написал этот код,

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 голосов
/ 06 декабря 2018

Эта строка возвращает байт:

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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...