python - 停用词在命令行上超过 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 need\nto get wrapped at\nwords, not randomly\nbetween characters'
线条在\n
为了调整已经编辑的新问题,换行符不返回左边距,您需要添加一个回车 -\r
所以str2 = str2.replace('\n', \r\n')
推荐阅读
- cmake - 如何从介子构建配置中检测 cmake 的可用性?
- android - Ionic Camera Preview 插件是否提供全质量图片?
- sql - 当列表中的逗号是字符串类型时,无法在 bigquery 中取消嵌套
- flutter - 如何将孩子放入容器中?
- mongodb - 如何使用多个目标更新多个文档
- scala - SBT:编译前为子模块生成代码
- javascript - React 默认调用不带括号的函数 useState
- ios - 将运行时变量添加到从 UIControl/NSControl 继承的 UI 元素
- php - PHP Laravel 作曲家照亮/缓存与另一个要求冲突
- .net - GCP ubuntu VM dotnet 运行控制台没有写入消息