Python:将字符串转换为int时遇到麻烦

时间:2019-02-07 20:12:24

标签: python python-2.x

虽然我知道在python(使用v2)中,将字符串转换为整数非常简单,但很多时候我都使用过int()方法。但是我现在正在处理一个文件,它的字符串似乎有些复杂,而且我不知道如何使用它。

一般而言,我了解到repr()方法很有用,因此我使用该代码(并进行了一些其他有用的检查)尝试使用该方法来弄清my_string发生了什么。

print my_string
print type(my_string)
print repr(my_string)
print repr('1')

这是输出:

1
<type 'str'>
'\xef\xbb\xbf1'
'1'

所以我正在处理一个字符串,显然它打印为“ 1”,但是repr()完全返回了其他内容,这似乎抑制了int()方法,该方法现在返回此: / p>

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

如何将其转换为整数?

1 个答案:

答案 0 :(得分:0)

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

在打印时您不会看到它,因为它是字节结构的技术标记。

该文件来自哪里?理想情况下,您应该对其进行修复,以使其不编写BOM,因为它们对于UTF-8毫无用处。要剥离它,可以将其替换为空白,然后将其转换为int:

>>> int(my_string.replace('\xef\xbb\xbf', ''))
1