我正在做一个项目,该项目随机选择少于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')