这个问题已经在这里有一个答案:
虽然我知道,在Python(使用V2)它是非常简单的将一个字符串转换成整数,而且很多时候我已经使用了INT()方法。但我现在其字符串似乎有点复杂文件的工作,我不知道如何使用它。
在一般情况下,我了解到,再版()方法是有用的,所以我使用的尝试,弄清事情与my_string,使用此代码(与其他一些有用的检查)。
print my_string
print type(my_string)
print repr(my_string)
print repr('1')
这是输出:
1
<type 'str'>
'\xef\xbb\xbf1'
'1'
所以很明显,我有一个字符串的工作,并明确其打印到“1”,但在再版(),否则完全返回的东西,这似乎抑制INT()方法,它马上返回此:
ValueError: invalid literal for int() with base 10: '\xef\xbb\xbf1'
我怎样才能将它转换为一个int?
这是一个字节顺序标记,使用UTF-8编码。
你不会看到,虽然印刷,因为它是字节结构的技术指标。
该文件从哪儿来的?理论上,应该修复它,所以它不写一个BOM,因为他们是没用使用UTF-8。要去除它,你可以用emptyness替换它,然后将其转换为int:
>>> int(my_string.replace('\xef\xbb\xbf', ''))
1