如何解决将字符串“ 0x00 ...”转换为python中的bytearray
我想通过我的COM端口发送十六进制代码以驱动引擎。 我使用此方法打开的.txt文件中包含所有十六进制代码(https://openclassrooms.com/forum/sujet/convertir-fichier-tableur-csv-en-liste-sur-python,法语)。这给了我十六进制代码列表:
- 代码[0] =“ 0X53,0X0B,0X01,0X02,0XFF,0X60,0X00,0XC2,0X45”
问题是通过我的com端口发送该代码。使用ser.write(bytearray([0X53,0X0B,0X01,0XFF,0X60,0X45]));
有效,但是我必须手动输入十六进制代码。我想从.txt中提取行,并通过COM端口发送它 这是我目前的代码
import serial
import csv
def convertisseur(chemin):
Tableau = []
Temps = []
Acc = []
f = open(chemin)
csv.reader(f,delimiter=',')
for row in f:
Tableau.append(row)
f.close
n = len(Tableau)
for i in range(n-1):
Temps.append(Tableau[i][0])
Acc.append(Tableau[i][1])
return (Tableau)
def main():
print("TEST DE PySerial")
print("----------------")
print
ser = serial.Serial('COM3',115200,timeout=1)
ser.close()
ser.open()
ser.write(bytearray([0X53,0X45]));
Code=convertisseur('C:/Users/Tdeba/Desktop/Cod.txt')
ser.write(Code[0].encode())
print(Code[0].encode())
#ser.write(bytearray([0X53,0X45]));
ser.close()
return 0
if __name__ == '__main__':
main()
解决方法
您可以将生成器传递到bytearray
构造函数中:
bytearray(int(i,16) for i in s.split(","))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。