4

私が持っているファイルの文字列を整数に変換する必要があります。問題の文字列は 1 つの数字です。

L= linecache.getline('data.txt', 1)
L=int(L)  

print L   

次のエラーが表示されます。

ValueError: invalid literal for int() with base 10: '\xef\xbb\xbf3\n'

この文字列を整数に変換するにはどうすればよいですか?

4

2 に答える 2

5

ファイルには UTF-8 BOM が含まれています。

>>> import codecs
>>> codecs.BOM_UTF8
'\xef\xbb\xbf'

linecache.getlineエンコーディングをサポートしていません。

使用codecs.open:

with codecs.open('data.txt', encoding='utf-8-sig') as f:
    L = next(f)
    L = int(L)
    print L   
于 2013-10-07T03:21:46.377 に答える
4

ファイルはBOMで始まります。数値を解析する前に削除してください。

于 2013-10-07T03:16:42.677 に答える