Python教程75:textwrap模块 — 文本自动换行与填充

TextWrap模块是一个Python模块,它提供了一些函数和方法来处理文本字符串的包装和填充。这个模块的主要功能是将一个长字符串根据指定的宽度分成多行,可以用于格式化文本输出,使其在指定的行数内完成显示。这个过程通常用于控制文本在终端、文本框、报表或其他输出媒介上的布局,以确保文本在不超出指定宽度的情况下可读性良好。

1.wrap(text, width, kwargs):该函数可以将一个长字符串根据指定宽度分成多行,返回一个列表,其中每个元素都是一个分行后的文本段落。它有三个参数:text表示要被格式化处理的字符串或文本,width表示每行的最大宽度,kwargs表示其他关键字参数。


import textwraptext = '危楼高百尺,手可摘星辰。不敢高声语,恐惊天上人。'
width = 12
wrapped_text = textwrap.wrap(text, width)
for line in wrapped_text:print(line)# 危楼高百尺,手可摘星辰。# 不敢高声语,恐惊天上人。
  1. fill(text, width, kwargs):该函数可以将一个长字符串根据指定宽度分成多行,将它们组合在一起形成一个新的字符串,返回新的字符串。它同样有三个参数:text表示要被格式化处理的字符串或文本,width表示每行的最大宽度,kwargs表示其他关键字参数。

import textwraptext = '危楼高百尺,手可摘星辰。不敢高声语,恐惊天上人。'
width = 12
new_text = textwrap.fill(text, width)
print(new_text)
# 危楼高百尺,手可摘星辰。
# 不敢高声语,恐惊天上人。

3.文本缩进:可以使用indent()函数为文本的每一行添加一些前缀,实现文本缩进(前缀文本为空格)的功能。这个函数接受两个参数:要格式化处理的字符串或文本,以及要添加的前缀字符串。

import textwraptext = '危楼高百尺,手可摘星辰。\n不敢高声语,恐惊天上人。'
new_text = textwrap.indent(text, prefix=' ')  # 添加空格的前缀
print(new_text)
#  危楼高百尺,手可摘星辰。
#  不敢高声语,恐惊天上人。

4.textwrap.dedent(text):自动删除文本中的缩进,通常用于处理多行字符串的缩进。

import textwrap
text = '''危楼高百尺,手可摘星辰。不敢高声语,恐惊天上人。
'''
new_text = textwrap.dedent(text)  # 添加李白: 的前缀
print(new_text)
# 危楼高百尺,手可摘星辰。
# 不敢高声语,恐惊天上人。

5.textwrap.shorten(text, width, **kwargs):用于缩短文本,并可以选择性地添加省略号(ellipsis)以表示文本被截断。

import textwraptext = '''危楼高百尺,手可摘星辰。不敢高声语,恐惊天上人。
'''
new_text = textwrap.shorten(text, width=20, placeholder='...')
print(new_text)
# 危楼高百尺,手可摘星辰。...

函数的返回值是一个新的字符串,其中超过width长度的文本已被缩短。缩短的方式是在单词之间断开,并添加省略号(…)来表示被省略的部分。


import textwrap
text = "This is a very long string that I want to shorten to fit within a certain width."
width = 20shortened_text = textwrap.shorten(text, width)
print(shortened_text)   # This is a very [...]

完毕!!感谢您的收看

----------★★历史博文集合★★----------
我的零基础Python教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/198578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面向注解编程—Spring 注解看这一篇就够了

面向注解编程—Spring 注解大全之IOC篇 Spring的一个核心功能是IOC,就是将Bean初始化加载到容器中,调用的时候直接注入即可,使用注解可以大大提高了开发效率!。 Bean英文意为 豆子 理解起来就是豆荚里的豌豆,豆荚就是…

.Net core 6.0 升8.0

1 Update Visual Studio 2 3 用Nutget 更新不同套件版本 更新后结果如下:

第四期丨酷雷曼无人机技能培训

第4期无人机技能培训 2023年10月25日,酷雷曼无人机技能培训及执照考试第四期成功举办,自7月份首期开办以来,已按照每月一期的惯例连续举办四期,取得了极为热烈的反响。 随着无人机培训的重要性及影响力逐渐扩大,参加培…

UE4/UE5 材质实现带框环形进度条

UE4/UE5 材质实现带框环形进度条 此处使用版本:UE4.27 原理:大圆减小圆可以得到圆环,大圆环减小圆环,可以得到圆环外围线框 实现效果: 实现(为了给大家放进一张面前能看的图,我费劲了心思&…

从 MQTT、InfluxDB 将数据无缝接入 TDengine,接入功能与 Logstash 类似

利用 TDengine Enterprise 和 TDengine Cloud 的数据接入功能,我们现在能够将 MQTT、InfluxDB 中的数据通过规则无缝转换至 TDengine 中,在降低成本的同时,也为用户的数据转换工作提供了极大的便捷性。由于该功能在实现及使用上与 Logstash 类…

自动化巡检实现方法 (一)------- 思路概述

一、自动化巡检需要会的技能 1、因为巡检要求一天24小时全天在线,因此巡检程序程序一定会放在服务器上跑,所以要对linux操作熟悉哦 2、巡检的代码要在git上管理,所以git的基本操作要熟悉 3、为了更方便不会代码的同学操作,所以整个…

GAN:WGAN-GP-带有梯度惩罚的WGAN

论文:https://arxiv.org/pdf/1704.00028.pdf 代码:GitHub - igul222/improved_wgan_training: Code for reproducing experiments in "Improved Training of Wasserstein GANs" 发表:2017 WGAN三部曲的终章-WGAN-GP 摘要 WGAN在…

123456前端调AES加密方法变为YehdBPev

使用密码加密服务: pig4cloud 加密服务

“天洑杯”工业数据建模揭榜挂帅专项启动暨征榜指南发布

随着人工智能和数据挖掘技术的发展,市场上已存在有大量开源的和商业的数据建模解决方案,但是对于工业企业,要想建立高质量的模型,并应用于自己的业务场景,仍存在着一定的门槛,数据荒废或投入产出失衡的现场…

js获取当前时间,当日零点,前一周时间

项目场景: 根据时间进行数据的快捷筛选 解决方案: 1.获取当前时间和当日零点时间 //当日 $("#today").click(function () { var currentTime new Date(Date.now()); var formattedCurrentTime currentTime.toLocaleString(zh-C…

【每日易题】Leetcode上Hard难度的动态规划题目——地下城游戏的实现

君兮_的个人主页 即使走的再远,也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们,这里是君兮_,博主最近一直在钻研动态规划算法,最近在Leetcode上刷题的时候遇到一个Hard难度的动态规划题,今天就借此机会来给大家分享…

安装部署Docker-Compose

随笔记录 目录 1. 要在CentOS 7上安装Docker,操作如下: 1.1 更新系统 1.2 安装Docker依赖 1.3 添加Docker官方存储库 1.4 安装Docker引擎 1.5 启动Docker服务 1.6 验证Docker是否成功安装 1.7 设置Docker开机自启动 1.8 权限问题 2. 安装Docke…

品牌保护与知识产权:跨境电商中的法律挑战与解决方案

随着跨境电商的蓬勃发展,品牌保护和知识产权问题日益成为业界关注的焦点。在全球范围内进行电商业务,涉及到多国法律法规的复杂性,品牌所有者需要面对一系列法律挑战,保护其品牌和知识产权不受侵害。本文将深入探讨跨境电商中面临…

2023年广东工业大学腾讯杯新生程序设计竞赛不知道叫什么名字(前缀和)

需要的是男生女生数量相同,做个转化,女生变成-1,然后求一遍前缀和,我们希望找到最长的满足 s u m ( l , r ) 0 sum(l, r)0 sum(l,r)0的区间也就是 s u m ( r ) − s ( l − 1 ) 0 sum(r) - s(l - 1) 0 sum(r)−s(l−1)0 考虑枚…

L1-016:查验身份证

题目描述 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2&#xf…

quickapp_快应用_系统接口应用

系统接口 在项目中使用到的接口都需要在配置文件manifest.json中声明,不然会报如下警告 [WARN] 请在 manifest.json 文件里声明项目代码中用到的接口: system.storage, service.account, system.package, system.webview[1]检查某app是否在手机上安装 官方文档&a…

前端nginx代理,访问后端接口502问题积锦

项目场景: 项目上线:前端服务器配置了nginx反向代理后,用户发出请求,结果502,本地请求后端服务的时候就正常 解决方案 http状态码502 目前: 前端服务是正常的后端服务也正常那么,就是连结前…

【Flink基础】-- 延迟数据的处理

目录 ​一、关于延迟的一些概念 1、什么是延迟? 2、什么导致互联网延迟?

jenkins清理僵尸任务和排队任务

步骤 进入 Manage Jenkins系统管理 然后点击 Script Console , 然后根据自己需求选择性执行后面的脚本 查看所有进程 Thread.getAllStackTraces().keySet().each() {t -> println("name:"t.getName()) }例如: name:Thread-90 name:Scheduler-174573182-1 name…

Java List、Set、Map 之间的区别是什么?

Java List、Set、Map 之间的区别是什么? 在Java中,List、Set 和 Map 是三种不同的集合接口,用于存储和操作不同类型的数据。 1. List 接口: 特点: 有序:元素的顺序与插入顺序一致。允许重复:…