python无法拆分serial.readline

python无法拆分serial.readline,python,python-2.7,serial-port,Python,Python 2.7,Serial Port,我试图保存一个由我的董事会发送的字符串,但我无法保存TC[1]的数据,它总是出错:indexer错误:列表索引超出范围 这是董事会的数据 [TC]4915 31[TC] [TC]4916 77[TC] [TC]4917 23[TC] [TC]4918 69[TC] [TC]4919 15[TC] 这是我的密码 import serial TC = [] ser = serial.Serial('COM6', 9600) while 1: string = ser.readline(

我试图保存一个由我的董事会发送的字符串,但我无法保存TC[1]的数据,它总是出错:indexer错误:列表索引超出范围

这是董事会的数据

[TC]4915 31[TC]
[TC]4916 77[TC]
[TC]4917 23[TC]
[TC]4918 69[TC]
[TC]4919 15[TC]
这是我的密码

import serial
TC = []
ser = serial.Serial('COM6', 9600)  
while 1:
    string = ser.readline()
    string = string.strip()
    string = string.replace("[TC]","")
    TC = string.split(" ",2)
    print TC[1]
但是当我使用

TC = []
string = "[TC]4915 31[TC]"
string = string.strip()
string = string.replace("[TC]","")
TC = string.split(" ",2)
print TC[1]
这是工作

那怎么了

2016/02/18

嘿,格斯!我尝试打印ser.readline(),它可以拆分

import serial
ser = serial.Serial('COM8', 9600)  
while 1:
    string = ser.readline()
    print str(ser.readline().strip().replace("[TC]",'')).split(' ')[0] 
    print str(ser.readline().strip().replace("[TC]",'')).split(' ')[1]
但答案看起来是这样的

1385
97
1388
35
1391
73
1394
11
1397
49
1400
87
1403
25
1880 21
1882 13
1884 5
1886 97
1888 89
1890 81
1892 73
1894 65
1896 57
无法捕获每个数据,我也尝试了

import serial
ser = serial.Serial('COM8', 9600)  
while 1:
    string = ser.readline()
    print str(ser.readline().strip().replace("[TC]",''))
还是不行,看起来像

1385
97
1388
35
1391
73
1394
11
1397
49
1400
87
1403
25
1880 21
1882 13
1884 5
1886 97
1888 89
1890 81
1892 73
1894 65
1896 57

那么如何修复数据跳转

您是否尝试打印出ser.readline()返回的内容?文件中的一行是空的,
string
变为空字符串。它通常是最后一行(拖尾回车)。@Lafexlos是的,它是print[TC]4915 31[TC],但使用print string.split(“”)它将打印['\r[TC]4915','31[TC]\n']@muraveill Uhh…..对不起,我不知道你的意思:(@W.Shawn用
string=”“
试试你的例子,看看你是否会遇到同样的错误。使用
print(string)
在循环中查看它是否真的发生在真实数据中。如果
T
不为空,则只能提取
T[1]
。是否尝试打印ser.readline()返回的内容?文件的一行为空,而
string
变为空字符串。它通常是最后一行(尾随回车符)@Lafexlos是的,它是print[TC]4915 31[TC],但是使用print string.split(“”)它会打印['\r[TC]4915','31[TC]\n']@muraveill Uhh…..对不起,我不知道你的意思:(@W.Shawn用
string=”“
试试你的例子,看看你是否会遇到同样的错误。使用
print(string)
在循环中查看它是否确实发生在真实数据中。如果
T
不为空,则只能提取
T[1]