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

Python 基数为10:\xef\xbb\xbf10的int()的文本无效,python,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:

我试图从文件中读取一个数字并将其转换为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文件),在里面,它看起来像这样:

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"
10 |项目10 |说明|信息|价格
这是文件的一行;有更多行有几个ID,所以我想看看文件中是否存在ID


我做错了什么?

你在某个时候遇到的是,$EF$BB$BF


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

这仍然不能解决问题,似乎是编码问题。使用csv模块打开csv文件并读取第一列仍然会给我同样的错误。在将数据输入csv解析器之前,请自己删除BOM。我已经删除了记事本“代码”菜单上的BOM,然后它就工作了。