我需要将字符串从我拥有的文件转换为整数。有问题的字符串只是一个数字。
L= linecache.getline('data.txt', 1)
L=int(L)
print L
我收到错误:
ValueError: invalid literal for int() with base 10: '\xef\xbb\xbf3\n'
如何将此字符串转换为整数?
答案 0 :(得分: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
答案 1 :(得分:4)
您的文件以BOM开头。在尝试解析数字之前将其删除。