Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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_Text_Terminal_Raspberry Pi - Fatal编程技术网

Python 在命令行上,停止在两行以上断开单词

Python 在命令行上,停止在两行以上断开单词,python,text,terminal,raspberry-pi,Python,Text,Terminal,Raspberry Pi,我正在做一个项目,随机选择少于280个字符的句子,然后使用“打字机效果”将它们打印到命令行。我使用的是raspberry pi和7英寸触摸屏显示器 感谢在这个论坛和其他地方的帮助,我让它工作起来了。我对将文字分成两行有意见,但这里的评论员帮助了我。然而,当我使用 str2 = textwrap.fill(newTok, 20) 然后将str2与此一起使用 words = str2 # for char in words: sleep(0.1)

我正在做一个项目,随机选择少于280个字符的句子,然后使用“打字机效果”将它们打印到命令行。我使用的是raspberry pi和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)
所以现在如果您
打印(str2)

我的长字符串需要
缠身
语言,不是随机的
字里行间
由于您似乎不知道通常如何换行,所以当您
打印(repr(str2))

行在
\n


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


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

那么…你想做换行扫描吗?嗨@DavisHerring,我想我想是吧?不确定使用sys.stdout是否可行,但很高兴尝试其他建议?当然有可能:用换行符替换输出中的某些空格字符(并在某些连字符后添加换行符)。嘿@DavisHerring,谢谢你的帮助,但我不确定如何或在何处添加换行符?谢谢Matt,这很有意义。我已经试过了,它几乎可以工作,但不完全有效-我已经用新版本更新了OP,如果有更多的指导,那就太好了。@heroZero:那么,这个输出设备需要
\r
s;显然,内核不知道如何为您进行转换。感谢Davis,他对/r(回车)的放置位置有点困惑,就像Matt的例子一样,他已经打印了(repr(str2)),但我使用sys.stdout.write(char)进行扩展,您可以尝试以下
words=str2.replace('\n','\r\n'))
而不是您的
words=str2
。或者您可能需要
words=str2.replace('\n','\r')
就这样,Matt,非常感谢!
'My long strings need\nto get wrapped at\nwords, not randomly\nbetween characters'