python函数在n行中打破消息

时间:2011-09-22 16:44:57

标签: python

大家,我想做这样的事,但我的逻辑并不是那么糟糕。我有一条消息,每行必须有80个字符:我可以这样做:

msg = ''
msg_list = []

for i in dict['msg']:
    if len(msg) >= 80 and i.isspace():
    msg_list.append(msg)
    msg = "" 

    msg += i

这里的问题是当我的msg没有80个字符时,是否有任何想法让这个块更好用?

3 个答案:

答案 0 :(得分:9)

import textwrap
msg_list = textwrap.wrap(dict['msg'], 80)

答案 1 :(得分:1)

import re

input = "put your text in here"
tokens = re.split('\s', input)

w = []
s = ""
for token in tokens:
    if len(s) + len(token) < 80:
        s = " ".join([s,token])
    else:
        w.append(s)
        s = ""
print w

答案 2 :(得分:0)

检查第80个字符。如果它是一个空间你可以打破这条线。如果没有检查第79。冲洗。重复

假设你在查字符76处打破了。现在检查(76 + 80)字符是否是空格。等等。

如果您无法将其转换为代码,请发布您的最佳尝试,我们可以从那里提出建议。

此外,for i in dict['msg']:没有意义。您是否重新定义了内置dict类型?