Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 自然断开一根绳子_Python - Fatal编程技术网

Python 自然断开一根绳子

Python 自然断开一根绳子,python,Python,在呈现标题(使用reportlab)时,如果标题长度超过45个字符,我希望将其拆分为两行。到目前为止,我有: if len(Title) < 45: drawString(200, 695, Title) else: drawString(200, 705, Title[:45]) drawString(200, 685, Title[45:]) 如果len(标题)

在呈现标题(使用reportlab)时,如果标题长度超过45个字符,我希望将其拆分为两行。到目前为止,我有:

if len(Title) < 45:
    drawString(200, 695, Title)
else:
    drawString(200, 705, Title[:45])
    drawString(200, 685, Title[45:])
如果len(标题)<45:
抽绳(200695,标题)
其他:
抽绳(200705,标题[:45])
抽绳(200685,标题[45:]
问题是,我只想在自然中断时分割标题,例如出现空格的位置。如何实现这一点?

请参见以下示例代码:

import textwrap

print("\n".join(textwrap.wrap("This is my sooo long title", 10)))
输出:

This is my
sooo long
title
请参阅完整的Python文档:

使用
rfind(“”,0,45)
查找边界前的最后一个空格并在该位置打断。如果没有空格(rfind返回-1),请使用您拥有的代码

s = 'this is a long line with a bunch of text for sure and goes on and on ..'

brk = s.find(' ', 45)
if brk == -1:
    print s
else:
    print('{:s}\n{:s}'.format(s[:brk], s[brk+1:]))
你自己滚,也许没那么优雅。。收益率:

this is a long line with a bunch of text for sure
and goes on and on ..

我不确定是否有其他选择。我可以建议,用背景色绘制文本框作为背景页,宽度为45,收缩为1。因此,超过45个字符的文本将在字尾处缩小。

Python中内置的内容继续让我感到惊讶。如果没有自然中断(例如,空白,超过44个字符),该怎么办?