хранение байтов в текстовом файле - PullRequest
0 голосов
/ 12 июня 2018

Я должен прочитать устройство UART через порт USB и сохранить входящие байты в файле .txt.

Я использую следующую команду:

while 1:
    x=ser.read()
    f.write(str(x))    #f is the file object

Однако это преобразует некоторыеbytes для соответствующих им ascii символов и сохраняет некоторые из них как

Пример:

b'\x55' сохраняется как b'U'.

Но b'\xaa' сохраняется как сама строка (т. Е. b'\xaa').

Если я использую chr(int.from_bytes()), выдается следующая ошибка:

UnicodeEncodeError: 'cp932' codec can't encode character '\xaa' in position 0: illegal multibyte sequence

Существует ли метод, с помощью которого я могу хранить все входящие байты в виде байтов, не преобразуя некоторые из них в ascii символов (например: b'\x55' хранится в виде строки b'\x55', а не b'U'), поскольку это вызывает проблемы, когдаЯ обрабатываю данные дальше.

Я использую python-3.7 на 64-битных окнах 10

1 Ответ

0 голосов
/ 12 июня 2018

попробуйте следующую ссылку: https://www.devdungeon.com/content/working-binary-data-python, а также двоичный файл Python для записи

with open("outfile.txt", "br+") as outfile:
   outfile.write(ser.read())
...