大家好,今天我们进一步探索一下Python中的“文件操作”。算一下,从初窥、略知、渐入到登堂,本文已经是Python“文件操作”系列第四篇文章了,相信大家也跟着一起学到了不少。好了,不感慨了,学习继续。
今天我们主要学习对文本的处理,在Python-docx文档中,也就是下图所示的内容。
上面一行英文是什么意思呢?要想有效地处理文本,首先要了解一些关于块对象(如段落)和行内对象(如run)的知识。也有人把inline-level称为是内联对象,都可以吧,大家按习惯理解就行。
块对象和行内对象有啥区别呢?块对象的主要任务是将其所包含的文本从左边界向右边界展示(flows),段落是word中最常见的块对象(block-level object),所以对于段落而言,边界也就是页边距,这个大家打开一个word文档看一下就明白了,另外表格(table)也是块对象;行内对象说白了也就是块对象的组成部分,块对象的所有内容都包含在内联对象中,一个块对象由一个或多个内联对象组成。最常见的行内对象就是run,我们在之前提到过,段落的所有内容必须在run中,但run可以不止一个。
块对象的属性用于指定块在页面上的位置,例如段落前后的缩进和空格。而行内对象的属性通常用于指定块内容的字体,如字体类型、字体大小、粗体或斜体等。
接下来,我们就依次学习以下块对象的属性和行内对象的属性。
一、段落属性
1)水平对齐方式,也就是office页面中的这一小部分,左对齐、右对齐、居中对齐、两边对齐等
要想看Python-docx中有哪几种对齐方式,可以采用help语句。
2)缩进,也就是下图红框所圈住的那一部分。
在Python中的实现方式如下图所示。
也可以这样实现。
其实也就是长度的度量方式的区别,简单介绍如下图所示。
要想实现首行缩进,需要使用first_line_indent属性,当该属性值为负数时,表示的是悬挂缩进。
3)间距,包括段间距和行间距,如下图红框所圈住部分。
Python中的实现也很easy,我简单罗列一下。
段落的属性我们就大致先学到这儿,接下来一起学习一下行内对象的属性,行内对象属性的设置在我们平时处理文档中最常见的也就是字符格式化,也就是word界面中的这一部分。
OK,我们开始学习吧。
二、字符格式化
字符格式化是run一级的操作,主要包括设置字体类型、字体大小、字体颜色、加粗、斜体、上标、下标等,大家看一下上面那张图就清楚了。
每个run对象都有一个只读的font(字体)属性,通过它可以访问到font对象
然后便可以设置字体、大小、加粗等了。
想要设置字体颜色的话,还需要一个类RGBColor,也是在docx.shared库中,不懂RGB是啥的可以问问度娘,挺简单的,在这儿就不讲了。另外每个font对象都有一个color属性,用于访问字体的颜色。下面给出一个小例子。
OK,今天的内容也不少了,大家对着word界面好好对比操作一下,应该就可以掌握。预报下期内容,讲解段落、字符以及表格样式,很重要哦,敬请大家享用吧!
领取专属 10元无门槛券
私享最新 技术干货