我必须通过USB端口读取UART设备,并将传入的字节存储在.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'
而不是{{1} }),因为这会在我进一步处理数据时导致问题。
我在64位Windows 10上使用python-3.7
答案 0 :(得分:0)
尝试以下链接:https://www.devdungeon.com/content/working-binary-data-python以及Python writing binary
with open("outfile.txt", "br+") as outfile:
outfile.write(ser.read())