1

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

int()ValueError:以 10为底的无效文字:\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。

我究竟做错了什么?

4

1 回答 1

2

您在某些时候遇到的是BOM(字节顺序标记),$EF $BB $BF。

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

于 2013-10-20T14:30:10.773 回答