Как сохранить значения нескольких типов данных в файле .txt в двоичном режиме в python3? - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь сохранить набор параметров в текстовом файле в двоичном режиме. Под словом set я подразумеваю, что в паре будет 2 значения.
Например, - Параметр = вес, Значение = 35.
Код, который у меня есть:

with open(os.path.join(path, "parameters.txt"), "wb") as out:
    for parameter, value in parameters:
        out.write("{}: {}\n".format(bytearray(parameter,'utf-8'),(bytearray(value,'utf-8'))  

Но главная проблема в том, что значения в value не относятся к одному и тому же типу. В нем int , float , string , tuple типов значений. Итак, с помощью приведенного выше кода я получаю сообщение об ошибке:

TypeError: a bytes-like object is required, not 'str'  

Существует ли общий способ сохранить значения в value в двоичном режиме? т. е. одна функциональность для всех значений внутри value

Примечание: я использую python 3.5 и Ubuntu 16.04.

1 Ответ

0 голосов
/ 14 января 2020

Полагаю, вы можете использовать что-то вроде этого:

import os
parameters = {"some": "some1", "some2": "some3", "1": 123, 123: 123}
s = ""
path = "."
########
to_s = lambda x: (str(x) if not isinstance(x, str) else x)   
with open(os.path.join(path, "parameters.txt"), "wb") as out:
    for parameter, value in parameters.items():
        s += "{}: {}\n".format(to_s(parameter), to_s(value))
    out.write(bytearray(s, 'utf-8'))
...