Python:无法将字符串转换为 int

标签 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() 方法,它现在返回这个:

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

如何将其转换为 int?

最佳答案

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

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

那个文件是从哪里来的?您应该理想地修复它,这样它就不会编写 BOM,因为它们对 UTF-8 毫无用处。要剥离它,您可以将其替换为空,然后将其转换为 int:

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

关于Python:无法将字符串转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54581522/

相关文章:

python - 在 Python 中使用用户输入调用/选择变量(浮点值)

python - 如何根据状态码重试异步 aiohttp 请求

python - 使用帐户身份验证来验证是否已登录

Python正则表达式查找子字符串

linux - select() 在 python2 和 python3 上的行为是否不同?

python - 如何根据参数类型执行不同的操作

python - 从不同结构和工资符号的 HTML 工作规范中提取工资

python - Numpy "double"-广播 - 有可能吗?

python - python 1和2之间的区别

python - 嵌套列表上的 min/max 函数如何工作?