从Python中读取文件中的数字,忽略b'

时间:2015-05-19 18:37:25

标签: python python-3.x

我想用Python阅读网址中的数字列表,例如:

1,2,3,4,5,6
2,3,2,3,2,3
etc

我试过了:

list.append([int(n) for n in line.strip().split(',')])

但我使用的是Python 3.2,这给出了错误:“TypeError:Type str不支持缓冲区API”,因为Python 3将输入作为字节读取。

所以我尝试将该行转换为字符串:

list.append([int(n) for n in str(line).strip().split(',')])

但是现在我在每行的开头都有b',错误:ValueError:int()的无效文字,基数为10:“b'1”

是否有一种优雅的方式来获取这些数字,或者我是否需要捕获字符串,删除前两个字符,然后转换为int?

1 个答案:

答案 0 :(得分:2)

您需要解码字节到文本:

line = line.decode('ascii')

然后拆分该行并转换为整数:

list.append([int(n) for n in line.split(',')])

int()可以处理额外的空格,因此不需要剥离。