我正在使用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(',')
答案 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()