Python 3.x TypeError:不支持unicode字符串,请将其编码为字节:'\t\x10\x03和#xE8\x00\x03\x06\x00\x00\x00\x00\x00\x00\x00s0';
我使用这个python代码来控制我的2F抓取器,但是我得到了错误类型错误,有时还有通信端口错误。这是我的代码:Python 3.x TypeError:不支持unicode字符串,请将其编码为字节:'\t\x10\x03和#xE8\x00\x03\x06\x00\x00\x00\x00\x00\x00\x00s0';,python-3.x,Python 3.x,我使用这个python代码来控制我的2F抓取器,但是我得到了错误类型错误,有时还有通信端口错误。这是我的代码: import serial import time import binascii ser = serial.Serial(port='COM8',baudrate=9600,timeout=1,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,bytesize=serial.EIGHTBITS) counter =
import serial
import time
import binascii
ser = serial.Serial(port='COM8',baudrate=9600,timeout=1,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,bytesize=serial.EIGHTBITS)
counter = 0
while counter < 1:
counter = counter + 1
ser.write("\x09\x10\x03\xE8\x00\x03\x06\x00\x00\x00\x00\x00\x00\x73\x30")
data_raw = ser.readline()
print(data_raw)
data = binascii.hexlify(data_raw)
print ("Response 1 ", data)
time.sleep(0.01)
ser.write("\x09\x03\x07\xD0\x00\x01\x85\xCF")
data_raw = ser.readline()
print(data_raw)
data = binascii.hexlify(data_raw)
print ("Response 2 ", data)
time.sleep(1)
while(True):
print ("Close gripper")
ser.write("\x09\x10\x03\xE8\x00\x03\x06\x09\x00\x00\xFF\xFF\xFF\x42\x29")
data_raw = ser.readline()
print(data_raw)
data = binascii.hexlify(data_raw)
print ("Response 3 ", data)
time.sleep(2)
print ("Open gripper")
ser.write("\x09\x10\x03\xE8\x00\x03\x06\x09\x00\x00\x00\xFF\xFF\x72\x19")
data_raw = ser.readline()
print(data_raw)
data = binascii.hexlify(data_raw)
print ("Response 4 ", data)
time.sleep(2)
导入序列号
导入时间
导入binascii
ser=serial.serial(端口='COM8',波特率=9600,超时=1,奇偶校验=serial.parity\u NONE,停止位=serial.stoppits\u ONE,字节大小=serial.EIGHTBITS)
计数器=0
当计数器<1时:
计数器=计数器+1
序列写入(“\x09\x10\x03\xE8\x00\x03\x06\x00\x00\x00\x00\x00\x00\x00\x00\x73\x30”)
data_raw=ser.readline()
打印(原始数据)
data=binascii.hexlify(数据_原始)
打印(“响应1”,数据)
睡眠时间(0.01)
序列写入(“\x09\x03\x07\xD0\x00\x01\x85\xCF”)
data_raw=ser.readline()
打印(原始数据)
data=binascii.hexlify(数据_原始)
打印(“响应2”,数据)
时间。睡眠(1)
虽然(正确):
打印(“闭合夹持器”)
顺序写入(“\x09\x10\x03\xE8\x00\x03\x06\x09\x00\x00\xFF\xFF\xFF\xFF\x42\x29”)
data_raw=ser.readline()
打印(原始数据)
data=binascii.hexlify(数据_原始)
打印(“响应3”,数据)
时间。睡眠(2)
打印(“打开夹持器”)
顺序写入(“\x09\x10\x03\X8\x00\x03\x06\x09\x00\x00\x00\xFF\xFF\x72\x19”)
data_raw=ser.readline()
打印(原始数据)
data=binascii.hexlify(数据_原始)
打印(“响应4”,数据)
时间。睡眠(2)
我收到的错误:
TypeError Traceback (most recent call last)
<ipython-input-1-830d10cd2151> in <module>
13 counter = counter + 1
14
---> 15 ser.write("\x09\x10\x03\xE8\x00\x03\x06\x00\x00\x00\x00\x00\x00\x73\x30")
16
17 data_raw = ser.readline()
~\Anaconda3\lib\site-packages\serial\serialwin32.py in write(self, data)
308 #~ raise TypeError('expected %s or bytearray, got %s' % (bytes, type(data)))
309 # convert data (needed in case of memoryview instance: Py 3.1 io lib), ctypes doesn't like memoryview
--> 310 data = to_bytes(data)
311 if data:
312 #~ win32event.ResetEvent(self._overlapped_write.hEvent)
~\Anaconda3\lib\site-packages\serial\serialutil.py in to_bytes(seq)
63 return seq.tobytes()
64 elif isinstance(seq, unicode):
---> 65 raise TypeError('unicode strings are not supported, please encode to bytes: {!r}'.format(seq))
66 else:
67 # handle list of integers and bytes (one or more items) for Python 2 and 3
TypeError: unicode strings are not supported, please encode to bytes: '\t\x10\x03è\x00\x03\x06\x00\x00\x00\x00\x00\x00s0'
TypeError回溯(最近一次调用)
在里面
13计数器=计数器+1
14
--->15序列写入(“\x09\x10\x03\xE8\x00\x03\x06\x00\x00\x00\x00\x00\x00\x03\x30”)
16
17 data_raw=ser.readline()
~\Anaconda3\lib\site packages\serial\serialwin32.py写入(self,data)
308#~raise TypeError('应为%s或bytearray,获得%s'(字节,类型(数据)))
309#转换数据(memoryview实例:Py 3.1 io lib时需要),ctypes不喜欢memoryview
-->310数据=至字节(数据)
311如果数据:
312#~win32event.ResetEvent(self._重叠_write.hEvent)
~\Anaconda3\lib\site packages\serial\serialutil.py in to_字节(seq)
63返回序列tobytes()
64 elif isinstance(序列,unicode):
--->65 raise TypeError('不支持unicode字符串,请编码为字节:{!r}'。格式(seq))
66.其他:
67#处理Python2和Python3的整数和字节列表(一个或多个项)
类型错误:不支持unicode字符串,请将其编码为字节:'\t\x10\x03è\x00\x03\x06\x00\x00\x00\x00\x00\x00\x00s0'
请在您的帖子中包含完整的回溯错误。这是我收到的错误:这是否回答了您的问题?