繁体   English   中英

尝试使用 Arduino 时出现 Python TypeError

[英]Python TypeError while trying to work with Arduino

我正在尝试通过串行链接 (com3) 从 uno 获取数据,并从运行 anaconda、spyder(3.3.3) 和 pyserial 3.7 的 iti 创建子字符串

import serial

ser = serial.Serial("COM3",9600)
i = 1
while i < 6:
  line=ser.readline()

  print (line)
  x=x+1
  print(i)
  index1=line.index(",")
  index2=line.index(".")
  print(line[0:index1])
  print(line[index1+1,index2])

 ser.close()

错误:

第 21 行,在 index1=line.index(",") 中

类型错误:参数应该是整数或类似字节的对象,而不是“str”

您有一个例外,因为您尝试查找 unicode 字符“.”的索引。 以字节为单位。

bytes是...只是字节(00-ff 范围)。 前任。 Python3 中的 b"abc"。

str是 unicode 字符串(a..z、ż、α 等)。 前任。 Python3 中的“abc”。

您可以使用(如果您需要文本):

line=ser.readline().decode()  # bytes -> unicode str
index2=line.index(".")

或者您可以处理字节(在“.”之前查看b ):

line=ser.readline()
index2=line.index(b".")

PS 您可以看到您输入的内容: print(repr(line))

暂无
暂无

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

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