首页 > 解决方案 > 停用词在命令行上超过 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.

任何建议都会很棒。

标签: pythontextterminalraspberry-pi

解决方案


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

您可以使用该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 need\nto get wrapped at\nwords, not randomly\nbetween characters'

线条在\n


为了调整已经编辑的新问题,换行符不返回左边距,您需要添加一个回车 -\r

所以str2 = str2.replace('\n', \r\n')


推荐阅读