在utthon中将utf-8字符串拆分为字节

时间:2015-04-23 08:46:05

标签: python utf-8

我试图在python 3中将UTF-8字符串拆分为字节。问题是,当我使用bytearray,byte,encode等函数时,我总是得到一个大小为14字节的数组,而不是1字节的数组预期。我需要将任何文本文件拆分为字节序列,并使用套接字逐字节发送它们。我试过这样的事情:

infile = open (file, "r")
str = infile.read()
byte_str = bytes(str, 'UTF-8')
print("size of byte_str",sys.getsizeof(byte_str[0]))

打印给了我14,但我需要1 ......有什么建议吗?

1 个答案:

答案 0 :(得分:1)

引用official documentation

sys.getsizeof(object[, default])
  

以字节为单位返回对象的大小。对象可以是任何类型的   宾语。所有内置对象都将返回正确的结果,但这样   并不一定适用于第三方扩展   具体实施。

     

只有直接归因于对象的内存消耗才是   占了,而不是它所指对象的内存消耗。

     

如果给定,则在对象未提供时将返回default   意味着检索大小。否则会引发TypeError。

     

getsizeof()调用对象的__sizeof__方法,添加   如果对象由管理,则额外的垃圾收集器开销   垃圾收集器

     

有关使用getsizeof()的示例,请参阅recursive sizeof recipe   递归地查找容器及其所有内容的大小。