python:从unicode字符串中读取前1000个字节

时间:2013-11-15 13:51:22

标签: python python-2.7 unicode

我在python中有这个长的unicode字符串。在这个unicode字符串中,我想先读取1000个字节。

使用案例:我正在尝试使用plivo API作为短信在手机号码上发送电子邮件正文内容。此文本消息最多占用1000个字节。

所以我需要从电子邮件正文内容中截断前1000个字节。

如何做到这一点?

1 个答案:

答案 0 :(得分:2)

如果您需要前1000个字节,那么您需要先对 的Unicode值进行编码,因为字节数会随所选的编码而变化。

然后只切片前1000个字节:

encoded = unicodevalue.encode('utf8')
sliced = encoded[:1000]

碰巧,Plivo Send Message API正是如此; 1000字节的UTF-8编码数据。您可能想要进一步截断数据以不切断多字节UTF-8字符:

encoded = unicodevalue.encode('utf8')
sliced = encoded[:1000]

while True:
    try:
        sliced.decode('utf8')
    except UnicodeDecodeError:
        sliced = sliced[:-1]  # remove one invalid byte
    else:
        break