Python:将字符串转换为整数

4

我需要将一个文件中的字符串转换为整数。这个字符串只包含一个数字。

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

print L   

我收到了这个错误信息:
ValueError: invalid literal for int() with base 10: '\xef\xbb\xbf3\n'

我该如何将这个字符串转换为整数?


3
完全没有重复。你提供的链接与困扰此问题作者的意外BOM无关。 - Hyperboreus
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   

4

您的文件以BOM开头。在尝试解析数字之前,请将其删除。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接