我已经将 Python 2 代码与 Python 3 进行了比较。
这样做,我改变了
print 'String: ' + somestring
into
print(b'String: '+somestring)
因为我收到以下错误:
Can't convert 'bytes' object to str implicitly
但现在我无法实现诸如 strip() 之类的字符串属性,因为它们不再被视为字符串......
global name 'strip' is not defined
for
if strip(somestring)=="":
我应该如何解决将字符串切换为字节和能够使用字符串属性之间的困境?有解决方法吗?
请帮助我并提前谢谢你..
这里有两个问题,一个是实际问题,另一个让你感到困惑,但不是实际问题。首先:
您的字符串是一个 bytes 对象,即 8 位字节的字符串。 Python 3 的处理方式与文本不同,文本是 Unicode。你从哪里得到字符串?由于您想将其视为文本,因此您可能应该将其转换为用于处理文本的 str 对象。这通常是通过 .decode() 函数完成的,即:
somestring.decode('UTF-8')
尽管调用 str() 也可以:
str(somestring, 'UTF8')
(请注意,您的解码可能不是 UTF8)
然而,这不是你真正的问题。您的实际问题是如何剥离字节字符串。答案是,您可以按照与字符串字符串相同的方式执行此操作:
somestring.strip()
Python 2 或 Python 3 中都没有内置的 strip() 函数。Python 2 中的 string 模块中有一个 strip 函数:
from string import strip
但自从字符串有了 strip() 方法以来,使用它并不是一个好的做法,大约十年了。所以在 Python 3 中它消失了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)