python设置字符串换行_python – 使长字符串换行到换行符的好方法?

在我的项目中,我有一堆从文件中读入的字符串.在命令控制台中打印时,大多数都超过80个字符并且环绕,看起来很难看.

我希望能够让Python读取字符串,然后测试它是否超过75个字符.如果是,则将字符串拆分为多个字符串,然后在新行上逐个打印.

我也希望它聪明,不要切断全文.即“快速褐色< 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?

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.

如果您不想将一行合并到另一行,请使用正则表达式:

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-3-x,string,python-2-x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值