質問: マイコンからセンサーのデータを受け取ってそれをエクセルに出力しようとしています. データをもらうところまではうまくいったのですが問題がもらったデータがうまく数値に変えられないのです. 送られてくるデータが変数dataに格納されていて, ``` import serial import time import numpy as np import matplotlib.pyplot as plt ser=serial.Serial("COM5",115200) for i in range(50): data=ser.readline().rstrip() a=str(data, encoding='ascii') time.sleep(1) print(a) print(data) ``` とすると 出力が b'\r-493\x00\x0054' となるのでバイト型を変換すると, ``` a=str(data, encoding='ascii') print(a) ``` とすることで出力としては -49354 とでできてほしい数値として表示されるのですが 変数aの中身をデータとして取り出すと, '\r-493\x00\x0054' となっていて数値でない文字コードのようなものが入っていて, データとして数値にしようとしても変換がうまくいかず困っています. ここの変換はどのようにすれば数値として取り出せるのでしょうか. 環境はpython3.4です
回答: テキストでないなら、readlineで読むのは具合が悪いですね readlineはあくまでテキストデータを1行読むメソッドです readで、バイト列として受信しておき、そこから数値変換するテでしょう