【问题标题】:storing bytes in a text file将字节存储在文本文件中
【发布时间】:2018-11-21 09:19:51
【问题描述】:

我必须通过 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' 而不是b'U'),因为这会导致问题我进一步处理数据。

我在 64 位 windows 10 上使用 python-3.7

【问题讨论】:

  • .txt 文件长什么样???
  • 如果您的数据不是文本,您可以将其按原样存储在二进制文件中,或者您必须将其编码为某种文本表示形式。使用str 就像你做后者一样,也许你想做前者?
  • 我会说你应该在收到数据时以二进制格式存储数据,然后使用十六进制查看器/编辑器打开它。

标签: python python-3.x byte


【解决方案1】:

尝试以下链接:https://www.devdungeon.com/content/working-binary-data-pythonPython writing binary

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

【讨论】:

    猜你喜欢
    • 2021-12-09
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 2015-07-19
    相关资源
    最近更新 更多