You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何在字符串接近20字符的单词边界处自动插入换行符

Python实现固定宽度(20字符)按单词换行解决方案

方案1:使用标准库textwrap(推荐)

Python内置的textwrap模块原生支持该需求,无需手动处理边界逻辑:

import textwrap

raw_str = "A very long string which is definately more than 20 characters long"
# width参数设置每行最大字符数,自动在最接近边界的单词后空格处换行
wrapped_str = textwrap.fill(raw_str, width=20)
print(wrapped_str)

运行输出结果:

A very long string
which is definately
more than 20
characters long

方案2:手动实现自定义逻辑

如果需要按照你提到的「从第15个字符之后开始搜索空格」的规则自定义实现,可以使用如下代码:

def custom_wrap(s, line_width=20, search_start=15):
    result = []
    current_str = s
    while len(current_str) > line_width:
        # 在[search_start, line_width]区间查找最后一个空格的位置
        split_idx = current_str.rfind(' ', search_start, line_width)
        # 区间内无空格时直接按最大宽度硬切,避免死循环
        if split_idx == -1:
            split_idx = line_width
        result.append(current_str[:split_idx])
        # 跳过空格处理剩余字符串
        current_str = current_str[split_idx+1:]
    # 追加最后不足一行的内容
    result.append(current_str)
    return '\n'.join(result)

# 测试
raw_str = "A very long string which is definately more than 20 characters long"
print(custom_wrap(raw_str))

该实现完全匹配需求,每次换行都会优先找20字符前、15字符后的最近空格位置插入换行符,不会拆分单词。

内容的提问来源于stack exchange,提问作者Taras Zagajewski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 01:57:04