textwrap ---- 格式化文本段落

1.fill()

作用:取文本作为输入,生成格式化的文本作为输出。

#!/usr/bin/env python
import textwrap

text = ‘‘‘
    China‘s Yaogan-27 remote sensing satellite 
    was sent into space on Thursday at 10:31 a.m. 
    Beijing Time, from Taiyuan launch site in 
    Shanxi Province, north China.
‘‘‘
print textwrap.fill(text,width=30)

执行结果:

China‘s Yaogan-27 remote sensing satellite

was sent into space on Thursday at 10:31 a.m.

Beijing Time, from Taiyuan launch site in

Shanxi Province, north China.

China‘s Yaogan-27 remote

sensing satellite      was

sent into space on Thursday at

10:31 a.m.      Beijing Time,

from Taiyuan launch site in

Shanxi Province, north China.

文本只有第一行保留了缩进,其余各行前面的空格嵌入到了段落中。

2.dedent()

作用:去除缩进,删除前面的空白符

#!/usr/bin/env python
import textwrap

text = ‘‘‘
    China‘s Yaogan-27 remote sensing satellite 
    was sent into space on Thursday at 10:31 a.m. 
    Beijing Time, from Taiyuan launch site in 
    Shanxi Province, north China.
‘‘‘

dedent_text = textwrap.dedent(text)
print text
print dedent_text

执行结果:

    China‘s Yaogan-27 remote sensing satellite 
    was sent into space on Thursday at 10:31 a.m. 
    Beijing Time, from Taiyuan launch site in 
    Shanxi Province, north China.

China‘s Yaogan-27 remote sensing satellite 
was sent into space on Thursday at 10:31 a.m. 
Beijing Time, from Taiyuan launch site in 
Shanxi Province, north China.

3.结合dedent和fill

#!/usr/bin/env python
import textwrap

text = ‘‘‘
    China‘s Yaogan-27 remote sensing satellite 
    was sent into space on Thursday at 10:31 a.m. 
    Beijing Time, from Taiyuan launch site in 
    Shanxi Province, north China.
‘‘‘

print text

dedent_text = textwrap.dedent(text).strip()
for width in [30,50]:
    print ‘%d columns:\n‘ % width
    print textwrap.fill(dedent_text,width=width)
    print

执行结果:

    China‘s Yaogan-27 remote sensing satellite 
    was sent into space on Thursday at 10:31 a.m. 
    Beijing Time, from Taiyuan launch site in 
    Shanxi Province, north China.

30 columns:

China‘s Yaogan-27 remote
sensing satellite  was sent
into space on Thursday at
10:31 a.m.  Beijing Time, from
Taiyuan launch site in  Shanxi
Province, north China.

50 columns:

China‘s Yaogan-27 remote sensing satellite  was
sent into space on Thursday at 10:31 a.m.  Beijing
Time, from Taiyuan launch site in  Shanxi
Province, north China.

4.悬挂缩进

可以控制第一行的缩进

#!/usr/bin/env python
import textwrap

text = ‘‘‘
    China‘s Yaogan-27 remote sensing satellite 
    was sent into space on Thursday at 10:31 a.m. 
    Beijing Time, from Taiyuan launch site in 
    Shanxi Province, north China.
‘‘‘

print text

dedent_text = textwrap.dedent(text).strip()
for width in [30,50]:
    print ‘%d columns:\n‘ % width
    print textwrap.fill(dedent_text,
                        initial_indent=‘‘,
                        subsequent_indent=‘ ‘ * 4,
                        width=width,)
    print

执行结果:

    China‘s Yaogan-27 remote sensing satellite 
    was sent into space on Thursday at 10:31 a.m. 
    Beijing Time, from Taiyuan launch site in 
    Shanxi Province, north China.

30 columns:

China‘s Yaogan-27 remote
    sensing satellite  was
    sent into space on
    Thursday at 10:31 a.m.
    Beijing Time, from Taiyuan
    launch site in  Shanxi
    Province, north China.

50 columns:

China‘s Yaogan-27 remote sensing satellite  was
    sent into space on Thursday at 10:31 a.m.
    Beijing Time, from Taiyuan launch site in
    Shanxi Province, north China.

悬挂缩进符前面可以加前缀*等符号

#!/usr/bin/env python
import textwrap

text = ‘‘‘
    China‘s Yaogan-27 remote sensing satellite 
    was sent into space on Thursday at 10:31 a.m. 
    Beijing Time, from Taiyuan launch site in 
    Shanxi Province, north China.
‘‘‘

print text

dedent_text = textwrap.dedent(text).strip()
for width in [30,50]:
    print ‘%d columns:\n‘ % width
    print textwrap.fill(dedent_text,
                        initial_indent=‘*‘,
                        subsequent_indent=‘*‘ * 4,
                        width=width,)
    print

执行结果:

    China‘s Yaogan-27 remote sensing satellite 
    was sent into space on Thursday at 10:31 a.m. 
    Beijing Time, from Taiyuan launch site in 
    Shanxi Province, north China.

30 columns:

*China‘s Yaogan-27 remote
****sensing satellite  was
****sent into space on
****Thursday at 10:31 a.m.
****Beijing Time, from Taiyuan
****launch site in  Shanxi
****Province, north China.

50 columns:

*China‘s Yaogan-27 remote sensing satellite  was
****sent into space on Thursday at 10:31 a.m.
****Beijing Time, from Taiyuan launch site in
****Shanxi Province, north China.

备注:indent():作用缩进,与dedent()正好相反

时间: 2024-10-12 22:42:08

textwrap ---- 格式化文本段落的相关文章

WPF 语言格式化文本控件

前言 本章讲述正确添加语言资源的方式,以及一段语言资源的多种样式显示. 例如:“@Winter,你好!感谢已使用软件 800 天!” 在添加如上多语言资源项时,“XX,你好!感谢已使用软件 X 天!” 那么,你是怎么添加语言资源的呢? 分别添加,“,你好!”.“感谢已使用软件”.“年”3个,再通过界面绑定动态变量 昵称和使用天数? 假如你是按照如上添加语言资源的,那么问题来了,添加如上英文语言资源呢?是不是也分别添加单个资源,再拼凑绑定? 添加语言资源 正确的做法是,添加整个语言资源,“{0},

Matlab实例学习-----------格式化文本 读 操作

(1)使用fscanf读取文本 语法: A = fscanf(fileID, format) A = fscanf(fileID, format, sizeA) [A, count] = fscanf(...) 参数介绍: 实例: % 1.打开文件 fid=fopen('读取文件.txt','r'); % 2.读取文件 a=fscanf(fid,'%d'); %读取结果为n行1列的形式,n为文本文件中数字的个数 % 3.关闭文件 fclose(fid); 其中,读取文件.txt 中的内容是: 1

AxureRP7.0基础教程系列 部件详解Text Area 文本段落

原型库网站-讲师金乌原创发布,可自由转载,请注明出处! Axure中文官网:www.AxureRP.cn   <AxureRP7.0部件详解> Text Area 文本段落 常用案例 评论或留言 多行文本框(文本区域)大多情况下用在留言/评论效果上.多行文本框可以输入多行文本,而且可以调整至任意你想要的高度. 模拟对话或消息窗口 多行文本框可以用来模拟现场聊天屏幕或消息窗口,因为它允许用户输入多行文本. 多行文本框的属性和单行文本框相同,参见 Text Field 文本框部件 文本框区域部件的

格式化文本域内容

本函数对 form 表单提交过来的 textarea 文本域的内容进行处理. 代码清单: <?php /** * 格式化文本域内容 * @author ruxing.li * @param $string 文本域内容 * @return string */ function formatTextarea($string) { $string = nl2br ( str_replace ( ' ', ' ', $string ) ); return $string; } 声明:本文出自CSDN,若

css(文本格式化,文本格式处理)

文本格式化,文本格式处理 文本格式化 1.控制字体 1.指定字体 font-family:"microsoft yahei",arial,"宋体"; 2.字体大小 font-size: px , pt 作为单位  30pt  16pt 常用字体大小:12px - 14px 3.字体加粗 相当于 <b></b> font-weight : normal / bold ; 建议:通过 该属性取代 b 标签 4.字体样式 斜体 font-style

c# 正则格式化文本防止SQL注入

/// <summary> /// 格式化文本(防止SQL注入) /// </summary> /// <param name="str"></param> /// <returns></returns> public static string Formatstr(string html) { Regex regex1 = new Regex(@"<script[\s\S]+</script

【python cookbook】【字符串与文本】16.以固定的列数重新格式化文本

问题:重新格式化一些很长的字符串,以指定的列数来显示 解决方案:textwrap模块的fill()方法来实现 # A long string s = "Look into my eyes, look into my eyes, the eyes, the eyes, the eyes, not around the eyes, don't look around the eyes, look into my eyes, you're under." import textwrap pr

对文本段落操作的一些细节

一个input框,想让它缩进两个字符显示文字,可以这样来实现 <input style="text-indent:2em;width:500px;"> 或者是这样 <input style=";width:473px;padding-left: 2em"> 同样对于多行的文本输入也是如此,代码如下: <textarea rows="10" cols="100" style="text-i

Matlab实例学习-----------格式化文本 (写) 操作

主要使用fprintf函数: 语法: 具体实例: %写入字符串 %如果文件不存在会进行创建,如果存在会进行覆盖 fid=fopen('写入文件.txt','w'); fprintf(fid,'%s','这是写入的字符串');% %s表示写入的是字符串 fclose(fid); %结果:文本中显示:这是写入的字符串 %按字符写入,每写入一个字符换一次行 fid=fopen('写入文件.txt','w'); fprintf(fid,'%c\r\n','这是写入的字符串');% %s表示写入的是字符串