解释从套接字

时间:2017-07-20 09:40:36

标签: python string sockets

我正在尝试解释从套接字收到的字符串。第一组数据如下所示:

2 -> 1

1 -> 2

2 -> 0

0 -> 2

0 -> 2

1 -> 2

2 -> 0

我使用以下代码来获取数值:

for i in range(0,len(data)-1):
    if data[i] == "-":
        n1 = data[i-2]
        n2 = data[i+3]
        moves.append([int(n1),int(n2)])

但是当数据中出现大于9的数字时,程序只取该数字的第二个数字(例如10,程序将得到0)。如何在保持获得单个数字的能力的同时从代码中获取两个数字?

3 个答案:

答案 0 :(得分:0)

嗯,你只需要抓住每一个角色......

对于第二个值,你可以这样:data [i + 3,len(data)-1]

表示第一个:: data [0,i-2]

答案 1 :(得分:0)

使用split()函数

numlist = data[i].split('->')
moves.append([int(numlist[0]),int(numlist[1])])

答案 2 :(得分:0)

我假设每一行都可以作为名为line的变量中的(字节)字符串使用。如果它是一大堆行,那么你可以用

将它分成单独的行
lines = data.splitlines()

并处理for语句中的每一行:

for line in lines:
    # do something with the line

如果您确信线条始终格式正确,则获取所需值的最简单方法是使用string split method。从数据开始的完整代码将会像这样读取。

lines = data.splitlines()
for line in lines:
    first, _, second = line.split()
    moves.append([int(first), int(second)])