当前位置: 首页 > 面试题库 >

将长字符串换成换行符的好方法吗?

长孙阳泽
2023-03-14
问题内容

在我的项目中,我有一堆从文件中读取的字符串。当在命令控制台中打印时,其中大多数字符的长度超过80个字符并环绕,看起来很丑。

我希望能够让Python读取该字符串,然后测试其长度是否超过75个字符。如果是这样,则将字符串分成多个字符串,然后在新行上一个接一个地打印。我也希望它很聪明,而不是断断续续。即"The quick brown <newline> fox..."代替"the quick bro<newline>wn fox..."

我试过修改类似的代码,该代码会在设置长度后将字符串截断,但只是将字符串丢弃而不是将其放在新行中。

我可以使用哪些方法来完成此任务?


问题答案:

您可以使用textwrap模块:

>>> import textwrap
>>> strs = "In my project, I have a bunch of strings that are read in from a file. Most of them, when printed in the command console, exceed 80 characters in length and wrap around, looking ugly."
>>> print(textwrap.fill(strs, 20))
In my project, I
have a bunch of
strings that are
read in from a file.
Most of them, when
printed in the
command console,
exceed 80 characters
in length and wrap
around, looking
ugly.

帮助
textwrap.fill

>>> textwrap.fill?

Definition: textwrap.fill(text, width=70, **kwargs)
Docstring:
Fill a single paragraph of text, returning a new string.

Reformat the single paragraph in 'text' to fit in lines of no more
than 'width' columns, and return a new string containing the entire
wrapped paragraph.  As with wrap(), tabs are expanded and other
whitespace characters converted to space.  See TextWrapper class for
available keyword args to customize wrapping behaviour.

使用regex,如果你不想合并一行到另一行:

import re


strs = """In my project, I have a bunch of strings that are.
Read in from a file.
Most of them, when printed in the command console, exceed 80.
Characters in length and wrap around, looking ugly."""

print('\n'.join(line.strip() for line in re.findall(r'.{1,40}(?:\s+|$)', strs)))

# Reading a single line at once:
for x in strs.splitlines():
    print '\n'.join(line.strip() for line in re.findall(r'.{1,40}(?:\s+|$)', x))

输出:

In my project, I have a bunch of strings
that are.
Read in from a file.
Most of them, when printed in the
command console, exceed 80.
Characters in length and wrap around,
looking ugly.


 类似资料:
  • 本文向大家介绍python将字符串转换成数组的方法,包括了python将字符串转换成数组的方法的使用技巧和注意事项,需要的朋友参考一下 python将字符串转换成数组的方法。分享给大家供大家参考。具体实现方法如下: 输出结果: 希望本文所述对大家的python程序设计有所帮助。

  • 本文向大家介绍JavaScript将字符串转换成字符编码列表的方法,包括了JavaScript将字符串转换成字符编码列表的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript将字符串转换成字符编码列表的方法。分享给大家供大家参考。具体如下: JavaScript将字符串转换成字符编码列表,例如foo转换成 [112,111,111] 方法 1: JavaScript 1

  • 问题内容: 我有一个以字符串形式传递的句子,我正在对单词“ and”进行替换,我想用“”替换它。而且它不是用空格替换“和”一词。以下是我的逻辑示例。而当我调试此逻辑时,逻辑确实落入了句子。 这里有我想念的东西吗? 问题答案: 而当我调试此逻辑时,逻辑确实落入了句子。 是的,然后你放弃返回值。 Java中的字符串是不可变的-当你调用时,它不会更改现有字符串的内容-它会返回经过修改的新字符串。所以你要

  • 我有一个作为字符串传入的句子,我正在对单词“and”进行替换,我想用“”替换它。它并没有用空白代替“和”。下面是我的逻辑示例。当我调试这个的时候,逻辑就落在句子里了。代替 这里有我遗漏的东西吗。

  • 本文向大家介绍php将字符串转换成16进制的方法,包括了php将字符串转换成16进制的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php将字符串转换成16进制的方法。分享给大家供大家参考。具体分析如下: php中可以通过bin2hex函数将字符串转换成16进制的形式输出,bin2hex()函数返回结果为ascii码 输出结果如下: 希望本文所述对大家的php程序设计有所帮助。

  • 问题内容: 是在Javascript中所有平台的通用换行字符序列?如果不是,我如何确定当前环境的角色? 我不是在问HTML换行符()。我在问JavaScript字符串中使用的换行符序列。 问题答案: 我刚刚使用了一些愚蠢的JavaScript测试了一些浏览器: Windows上使用IE8和Opera 9 。我测试过的所有其他浏览器(Windows上的Safari 4和Firefox 3.5,Lin