我试图在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 ......有什么建议吗?
答案 0 :(得分:1)
sys.getsizeof(object[, default])
以字节为单位返回对象的大小。对象可以是任何类型的 宾语。所有内置对象都将返回正确的结果,但这样 并不一定适用于第三方扩展 具体实施。
只有直接归因于对象的内存消耗才是 占了,而不是它所指对象的内存消耗。
如果给定,则在对象未提供时将返回default 意味着检索大小。否则会引发TypeError。
getsizeof()调用对象的
__sizeof__
方法,添加 如果对象由管理,则额外的垃圾收集器开销 垃圾收集器。有关使用getsizeof()的示例,请参阅recursive sizeof recipe 递归地查找容器及其所有内容的大小。