从设备锁定中检索到的字节中提取 int

Extracting the int from a byte retrieved from a lock in device

我正在尝试从设备锁定中获取时间常数,我使用此代码:

self.ser.write("OFLT?\r\n".encode())
self.ser.write("++read\r\n".encode())
print (self.ser.readline())

打印 b'9\n'。我只想要其中的 9,但我似乎无法将其取出。我试过:

a = self.ser.readline()
print (type(a))
print ("a is: " + a.decode())

结果是

<class 'bytes'>
a is: 

只给我一个空白space。我尝试将此代码单独 运行 作为

a = b'9\n'
print ("a is " + a.decode())

哪个打印

a is 9

我猜您的完整代码如下所示:

...
print (self.ser.readline())
a = self.ser.readline()
...

似乎ser是一个文件对象,所以一旦你打印出那一行,指针前进到下一行,你就不能再读了。

尝试删除该打印语句。另外,如果你想删除尾随的换行符,你可以使用 a.decode().rstrip().