通过 python 中的内存大小获取字符数
Getting number of characters through it's memory size in python
[Python]
我有一个字符串,我知道它在内存中的大小。我想得到它包含的字符数(粗略估计)。
实际情况,我想通过邮件发送报告,邮件的内容超出了允许的大小。我想根据最大大小将邮件分成多个。但是我没有办法将最大大小与字符串中的字符数相关联。
import smtplib
smtp = smtplib.SMTP('server.name')
smtp.ehlo()
max_size = smtp.esmtp_features['size']
message_data = <some string data exceeding the max_size>
# Now, how can I get the number of characters in message_data which exceeds the max_szie
谢谢,
字符串中的字符数是内存中的字节数,您必须减去 37 (python 2.7 / mac os)
import sys
def estimate_chars():
"size in bytes"
s = ""
for idx in range(100):
print idx * 10, sys.getsizeof(s), len(s)
s += '1234567890'
estimate_chars()
结果:(字符 | 字节 | len)
0 37 0
10 47 10
20 57 20
30 67 30
40 77 40
50 87 50
...
960 997 960
970 1007 970
980 1017 980
990 1027 990
[Python]
我有一个字符串,我知道它在内存中的大小。我想得到它包含的字符数(粗略估计)。
实际情况,我想通过邮件发送报告,邮件的内容超出了允许的大小。我想根据最大大小将邮件分成多个。但是我没有办法将最大大小与字符串中的字符数相关联。
import smtplib
smtp = smtplib.SMTP('server.name')
smtp.ehlo()
max_size = smtp.esmtp_features['size']
message_data = <some string data exceeding the max_size>
# Now, how can I get the number of characters in message_data which exceeds the max_szie
谢谢,
字符串中的字符数是内存中的字节数,您必须减去 37 (python 2.7 / mac os)
import sys
def estimate_chars():
"size in bytes"
s = ""
for idx in range(100):
print idx * 10, sys.getsizeof(s), len(s)
s += '1234567890'
estimate_chars()
结果:(字符 | 字节 | len)
0 37 0
10 47 10
20 57 20
30 67 30
40 77 40
50 87 50
...
960 997 960
970 1007 970
980 1017 980
990 1027 990