繁体   English   中英

将PySerial代码从Python 3转换为2.7

[英]Converting PySerial Code from Python 3 to 2.7

我正在尝试将用Python 3.5编写的程序移植到2.7,但是在Python 3中添加字节对象似乎改变了PySerial的实现方式。 不幸的是, 我找不到有关PySerial 2.x的任何文档 ,因此,我非常感谢您帮助将此代码从PySerial 3转换为2:

import serial
ser = serial.Serial('COM6', 9600)

ser.write(bytes(chr(0x30), 'UTF-8'))
dataIn = ser.read(size=4)

由于bytes对象只是Python 2.x中str类型的别名,因此出现以下错误:

TypeError: str() takes at most 1 argument (2 given)

PySerial的write()方法是使用bytearray对象作为参数还是使用带有另一个参数的string进行编码?

ser.read(size=4)返回什么数据类型?

或者更好的是,如果有人链接到文档...

好吧,我不得不使用时间机器来查找PySerial 2的文档 ,该文档不再存在,但是现在我可以回答自己的问题:

ser.write()接受一个str或,实际上,一个bytearray在Python 2.6+。 bytearray可能更好,因此我可以根据需要指定编码,因为str的编码似乎取决于系统设置 所以我的代码现在是:

ser.write(bytearray([0x30]))

另外, ser.read返回一个str (或Py2.6 +中的bytes )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM