【发布时间】:2013-03-25 08:16:30
【问题描述】:
我的问题是关于 python 3.0 字符串的。
我的理解是,对于
str = "a"行,字符“a”被编码(例如使用 utf-8)并存储在 str 对象中。如果 'a' 的 UTF-8 表示为 1 个字节,则字符串为 1 个字节长。我说的对吗?-
如果上述情况属实,当我们使用 read() 读取二进制文件时会发生什么。假设我有一个包含两个字节二进制数据的两字节文件,我使用读取命令将其读取为字符串
open(fileName, mode='rb') str= file.read()现在
str将有两个字节长,每个字节将是存储在文件名中的内容。我说的对吗?
1234563如果我调用 str.encode() 也会发生什么。没有意义?
由于从文件中读取的
str对象实际上是一个字节数组。有什么办法可以把它转成bytearray类型?
【问题讨论】:
-
您确实需要阅读Python Unicode HOWTO 和this article 以获得良好的衡量标准。
-
您真的不想将您的字符串命名为
str。尤其是当您询问str和bytes对象时,这比仅仅隐藏内置对象更加令人困惑。
标签: python python-3.x