虽然我知道在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'
如何将其转换为整数?
答案 0 :(得分:0)
这是使用UTF-8编码的字节顺序标记。
在打印时您不会看到它,因为它是字节结构的技术标记。
该文件来自哪里?理想情况下,您应该对其进行修复,以使其不编写BOM,因为它们对于UTF-8毫无用处。要剥离它,可以将其替换为空白,然后将其转换为int:
>>> int(my_string.replace('\xef\xbb\xbf', ''))
1