将二进制数转换为人类可读文本

时间:2013-05-12 01:57:41

标签: python python-3.x type-conversion

我正在使用Python 3.3。

我从串口获取数据,每个字节对应一个整数。 (没有数字大于255,所以没有多字节数字。)

我一直在努力将这个写入人类可读文本的文本文件,所以我正在寻求帮助。

如果我从串口获取值0b10000111,如何在我的文本文件中将此号码显示为“135”?这听起来像一个简单的任务,但我已经挣扎了很多!

我还想添加一个逗号来分隔值(字节)。

这就是我一直在尝试的:

import sys
import serial

port = serial.Serial('COM4', 115200)
fileID = open('output.txt', 'a')

while(1):
    data = port.read(size=1)
    if data != 0:
        #MISSING SOME CONVERSION HERE... Tried a lot of things, 
        #but none have been correct.
        fileID.write(data)
        fileID.write(',')

2 个答案:

答案 0 :(得分:1)

你知道data的大小是1,而你感兴趣的只是第一个字节。首先,您需要将该字节转换为整数,然后转换为字符串。

fileID.write(str(ord(data[0])))

答案 1 :(得分:0)

它现在正在运行,我想与其他人分享代码:

import sys
import serial

port = serial.Serial('COM4', 115200, timeout=0)
data = b''

while(1):
    data = port.read()
    print(data)
    if data != b'':
        fileID = open('output.txt', 'a')
        fileID.write(str(ord(data)))
        fileID.write(',')
        fileID.close()

port.close()