簡體   English   中英

將二進制數轉換為人類可讀的文本

[英]Convert a binary number to human readable text

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

您知道data的大小為1,而您感興趣的只是第一個字節。 首先,您需要將該字節轉換為整數,然后轉換為字符串。

fileID.write(str(ord(data[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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM