int()的基数为10的无效文字:\ xef \ xbb \ xbf10

时间:2013-10-20 14:19:49

标签: python

我正在尝试从文件中读取一个数字并将其转换为int以便将其与值进行比较,但我收到此错误:

  

ValueError:基数为10的int()的文字无效:\xef\xbb\xbf10

我这样做:

def check_id(str_id)
    csvfile = file('strings.csv')
    for csvline in csvfile:
        parts = csvline.split('|')
        if int(parts[0]) == str_id:
            print "id found"

里面的文件就像一张桌子(它是一个CSV文件),在里面,它看起来像这样:

10|item 10|description|information|price

这是文件的一行;有更多的行有多个ID,所以我想查看文件中是否存在ID。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您在某些时候遇到的是BOM (Byte Order Mark),$ EF $ BB $ BF。

你正在努力比Python更聪明。 Python有一个csv module,可以正确地进行CSV解析;使用它而不是修补你自己的半生不熟的解析器。