停止在命令行上通过 2 行断开单词



我正在做一个项目,该项目随机选择少于280个字符的句子,然后使用"打字机效果"将它们打印到命令行。我正在使用树莓派和 7 英寸触摸屏显示器。

感谢这个论坛和其他地方的帮助,我让它工作。我遇到了单词分成两行的问题,但这里的评论者帮助了我。但是,当我使用


str2 = textwrap.fill(newTok, 20)

然后将 str2 与此一起使用

words = str2 # 
for char in words:
sleep(0.1)
sys.stdout.write(char)
sys.stdout.flush()

字符串在 4 行中间隔开,并占据整行。

所以而不是

This is 
being split 
over four
different lines

它是给予

This is 
being split
over four 
different lines.

任何建议都会很棒。

似乎你想包装你的字符串,只是不在单词中间。

您可以使用textwrap模块。这将确保您的行在一定数量的字符下。

import textwrap
str1 = "My long strings need to get wrapped at words, not randomly between characters"
str2 = textwrap.fill(str1, 20)

所以现在如果你print(str2)

My long strings need
to get wrapped at
words, not randomly
between characters

由于您似乎对一般换行方式感到困惑,因此当您print(repr(str2))

'My long strings neednto get wrapped atnwords, not randomlynbetween characters'

线条在n处断开


要针对已编辑的新问题进行调整,其中换行符不会返回到左边距,您需要添加回车符 -r

所以str2 = str2.replace('n', rn')

最新更新