2 回答

TA贡献1795条经验 获得超7个赞
字节串由 b 前缀表示。虽然您可以在打印输出中看到字符串,但它们本质上是字节。
要从中获取普通字符串,decode
函数可以提供帮助。
dataStr.decode("utf-8")

TA贡献1810条经验 获得超5个赞
b'data'仅表示引号内的数据已以字节形式接收,如其他答案中所述,您必须对其进行解码才能以decode('utf-8')字符串形式获取它。
我已经在下面更新了您的程序,以兼容 v3.7+
from socket import *
isoCmd = ['auto','100','200','300','400','500','640','800']
HOST = ''
PORT = 21567
BUFSIZE = 1024
ADDR = (HOST,PORT)
brightness = 50
timelapse = 0
tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
while True:
print ('Waiting for connection')
tcpCliSock,addr = tcpSerSock.accept()
try:
while True:
data = ''
brightness = ' '
data = tcpCliSock.recv(BUFSIZE).decode('utf-8')
print ("Here's data "+data)
if not data:
break
if data in isoCmd:
if data == "auto":
camera.iso = 0
print ('ISO: Auto')
else:
camera.iso = int(data)
print ('ISO: '+ data)
except Exception as e:
print(e)
添加回答
举报