的Python:无法打开一个字符串转换为一个int [重复]

问题描述 投票:3回答:1

这个问题已经在这里有一个答案:

虽然我知道,在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?

python python-2.x
1个回答
0
投票

这是一个字节顺序标记,使用UTF-8编码。

你不会看到,虽然印刷,因为它是字节结构的技术指标。

该文件从哪儿来的?理论上,应该修复它,所以它不写一个BOM,因为他们是没用使用UTF-8。要去除它,你可以用emptyness替换它,然后将其转换为int:

>>> int(my_string.replace('\xef\xbb\xbf', ''))
1
© www.soinside.com 2019 - 2024. All rights reserved.