1

ファイルから数値を読み取り、それを値と比較するために int に変換しようとしていますが、次のエラーが発生しています。

ValueError:int()基数 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

これはファイルの 1 行です。複数のIDを持つ行がさらにあるので、ファイルにIDが存在するかどうかを確認したい.

私は何を間違っていますか?

4

1 に答える 1

2

ある時点で遭遇するのは、BOM (バイト オーダー マーク)、$EF $BB $BF です。

あなたはPythonよりも賢くなろうとしています。Python には、CSV の解析を適切に行うcsv モジュールがあります。あなた自身の中途半端なパーサーをいじる代わりにそれを使用してください。

于 2013-10-20T14:30:10.773 に答える