Python-docx 模块读写 Word 文档基础(一):创建文档、段落格式、字体格式设置方法

    • 前言:
    • 1、创建 Word 文档及基础用法:
    • 2、段落格式设置:
    • 3、字体格式设置:
    • 结尾:
  • 【Python与Office】专栏

前言:

从这篇博客开始,将开启新一个专栏【Python与Word】。该专栏将详细介绍Python的第三方包python_docx 操作 Office 办公软件 Word 文档的方法。

python-docx 模块简介:

安装方法:pip install python-docx
官方文档地址: python-docx 0.8.10
python-docx 模块集成了 Word 文档的读写功能,不像 python 的 xlwt 和 xlrd 模块操作 Excel 表格,一个辅助写,一个负责读,用起来还是很方便的。

【Python与Word】专栏简介:

本专栏也会分两个部分来讲解:基础接口(用法)详解,实例演练 。
基础接口讲解内容:
1、python-doxc模块新建(写) Word 文档(预计两篇博客);
2、python-doxc模块读取 Word 文档信息(预计一篇)。
实例演练:2-3 个实例。

本篇博客主要内容:

1、创建文档与基础操作;
2、文档段落格式设置;
3、字体格式设置。

1、创建 Word 文档及基础用法:

模块安装后,导入模块,新建 word 文档对象:

# 导入模块
from docx import Documentdoc = Document()  # 新建文档对象
'''按模板新建 word 文档文件,具有模板文件的所有格式'''

新建了 Document 对象后就可以用它开始工作了:

# 增加标题:
doc.add_heading('标题',1)
'''
add_heading(self, text="", level=1):
'''# 段落正文
par = doc.add_paragraph('第一个段落:')
print(par)
# <docx.text.paragraph.Paragraph object at 0x000000000A889F08>
'''
add_paragraph(self, text='', style=None):
返回一个 Paragraph 段落对象
'''# 在段落中添加文字
run_ = par.add_run('段落文字')
print(run_)
# <docx.text.run.Run object at 0x000000000B2D31C8>
'''
add_run(self, text=None, style=None):
返回一个 run 对象
'''

解析:
以上代码,在文档中增加了一个标题、一个段落并在段落中增加了文字。以上三个方法都会返回相应的对象,以便后续的一些操作。

其他一些常用方法:(在文档中增加图片、表格)

# 增加图片
pic_par = doc.add_picture('1.png')
'''
add_picture(self, image_path_or_stream, width=None, height=None):
返回一个 InlineShape 对象
'''
print(pic_par)  # <docx.shape.InlineShape object at 0x000000000B2F11C8># 增加表格
table = doc.add_table(2,3)
'''
add_table(self, rows, cols, style=None):
返回一个表格对象
'''
print(table)  # <docx.table.Table object at 0x000000000B302688># 保存文件
doc.save('test.docx')

注:本篇博客会对 段落 run 对象进行详细讲解,增加图片、表格方法将会放在下一篇博客里介绍。

以上操作后,文件预览:

2、段落格式设置:

add_heading 方法:

# 增加分页符
doc.add_page_break()# 增加标题 API 分析
for i in range(0,10):exec ("doc.add_heading('标题%s',%s)" % (i,i))
# 只能设置 0-9 级标题

add_heading 方法:是在Word 文档中增加标题,也就是Word文档中的这些快捷窗口:


0 - 9 级标题文件设置预览:


新建一个段落,并对段落格式进行设置:

1、段落文字对齐设置:

# 增加分页
doc.add_page_break()par2 = doc.add_paragraph('第二个段落文本:麻烦给我的爱人来一杯MojIto,''我喜欢阅读她微醺时的眼眸,而我的咖啡,糖不用太多,''这世界已经因为她甜得过头,没有跟她笑容一样浓郁的雪茄,''就别浪费时间介绍收起来吧,拱廊的壁画,旧城的涂鸦,''所有色彩都因为她说不出话。')# Paragraph 段落格式设置
# 段落对齐设置:# 导入对齐选项
from docx.enum.text import WD_ALIGN_PARAGRAPH# 设置段落文本右对齐
par2.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.RIGHT
'''
可选项有:
'LEFT', 0, 'left', 'Left-aligned'
'CENTER', 1, 'center', 'Center-aligned.'
'RIGHT', 2, 'right', 'Right-aligned.'
'JUSTIFY', 3, 'both', 'Fully justified.'
'DISTRIBUTE', 4, 'distribute', 'Paragraph characters are distrib''uted to fill the entire width of the paragraph.'
'JUSTIFY_MED', 5, 'mediumKashida', 'Justified with a medium char''acter compression ratio.'
'JUSTIFY_HI', 7, 'highKashida', 'Justified with a high character'' compression ratio.'
'JUSTIFY_LOW', 8, 'lowKashida', 'Justified with a low character ''compression ratio.'
'THAI_JUSTIFY', 9, 'thaiDistribute', 'Justified according to Tha''i formatting layout.'
'''
# 获取段落设置的对齐方式
print(par2.alignment)

2、段落缩进设置:

# 段落缩进:
# 导入缩进单位
from docx.shared import Inches,Pt
# 左缩进,0.5 英寸
par2.paragraph_format.left_indent = Inches(0.5)
# 右缩进,20 磅
par2.paragraph_format.right_indent = Pt(20)
# 首行缩进
par2.paragraph_format.first_line_indent = Inches(1)

3、段落间距设置:

# 行间距
# par2.paragraph_format.line_spacing = Pt(20) # 20 磅
par2.paragraph_format.line_spacing = 1.5 # 1.5倍行距 单倍行距 1.0
"当line_spacing设置为长度值时表示绝对距离,"
"设置为浮点数时表示行高的倍数"# 段前间距
par2.paragraph_format.space_before = Pt(5)
# 段后间距
par2.paragraph_format.space_after = Pt(10)# 设置段落内部文字在遇到需分页情况时处理状态
par2.paragraph_format.keep_together = True  # 段中不分页
par2.paragraph_format.keep_with_next = True # 与下段同页
par2.paragraph_format.page_break_before = True # 段前分页
par2.paragraph_format.widow_control = True # 孤行控制

以上段落设置方法,其实对应Word文档中的段落设置方法:


以上代码运行后文件效果截图:


注:以上设置的段落格式,也均可获取到设置值,如:

# 获取段落的左缩进,首行缩进,段前间距:
l_space = par2.paragraph_format.left_indent
h_space = par2.paragraph_format.first_line_indent
b_space = par2.paragraph_format.space_before
print(l_space,h_space,b_space)
# 打印结果
# 457200 914400 63500

3、字体格式设置:

首先明确一个概念:

python-docx 模块中,paragraph 段落是一个块对象,可以理解为是一个容器。run 对象也是一个块对象,可以理解为具有相同格式的一段文字集合。

放在 word 文档中简单理解就是,一个段落包含许多文字,同一段落的文字,也可以有不同的格式。

注意:用 add_paragraph() 方法添加段落时,如果写入了文本,就直接创建了一个 run。

测试一下上面的 paragraph 对象:

# 获取上面段落对象 所有 run 对象
par2_run = par2.runs
print(par2_run)
# 打印结果:
# [<docx.text.run.Run object at 0x000000000B307048>]

字体格式设置:

# 新建一个段落,增加一段文字
run_2 = doc.add_paragraph().add_run('这爱不落幕,忘了心事的国度,''你所在之处,孤单都被征服,''铁铸的招牌,错落着就像,''一封封城市献给天空的情书,''当街灯亮起,Havana漫步,''这是世上最美丽的那双人舞。')
# 设置字体格式
run_2.font.name = 'Times New Roman'  # 注:这个好像设置 run 中的西文字体
# 设置中文字体
# 需导入 qn 模块
from docx.oxml.ns import qn
run_2.font.element.rPr.rFonts.set(qn('w:eastAsia'),'楷体')
# 设置字体大小
run_2.font.size = Pt(14)
# 设置加粗
run_2.font.bold = True
# 设置斜体
run_2.font.italic = True
# 设置字体颜色 需导入 rgb 颜色模块
from docx.shared import RGBColor
run_2.font.color.rgb = RGBColor(255,55,55) # 红色
# 设置下划线
# run_2.font.underline = True
# 设置轮廓线
# run_2.font.outline = True
# 设置阴影
# run_2.font.shadow = True
# 删除线
# run_2.font.strike = True
# 双删除线
# run_2.font.double_strike = True
# 设置下标
# run_2.font.subscript = True
# 设置上标
# run_2.font.superscript = True

注:
1、注释掉的方法也都可以正常使用,之所以注释掉是因为设置太多格式,文字显示效果会很乱。
2、像设置段落格式一样,字体格式也可以被读取。

以上代码运行后,文件效果截图:

结尾:

以上就是本篇博客全部内容了,感谢阅读。
下一篇博客会详细介绍:word 文档中增加图片、表格,写入表格数据、设置格式等内容。

【Python与Office】专栏

该专栏会对 Python 的第三方模块,如:xlwt,xlrd,python-docx等,操作 Office 办公软件(Word Excel PPT)的方法进行详细讲解。同时也会搭配一些实例演练,一方面强化知识点的理解与运用,另一方面也希望能起到,引导读者进行思考:如何用 python 提高 offic 办公软件办公效率的作用。

感兴趣的朋友,可以点个 关注收藏 。如在博客中遇到任何问题或想法,可留言或私信。

创作不易,你的支持是我最大的动力,感谢 !

Python-docx 模块读写 Word 文档基础(一):创建文档、段落格式、字体格式设置方法相关推荐

  1. python合并word表格单元格_python docx模块读取word表格遇到合并单元格时的处理

    python docx模块读取word表格遇到合并单元格时的处理 python docx模块读取word表格遇到合并单元格时的处理 python docx模块读取word表 遇到合并单元格时的处理 通 ...

  2. python中docx模块的使用_python使用docx模块读写docx文件的方法与docx模块常用方法详解...

    一,docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的.也就是说python-docx模块会把word文档,文档中的段落.文本.字体等都看做对象,对对象 ...

  3. python和wps-基于python的docx模块处理word和WPS的docx格式文件方式

    Python docx module for Word or WPS processing 本文是通过docx把word中的表格中的某些已填好的内容提取出来,存入excel表格. 首先安装docx的p ...

  4. 利用python的docx模块处理word和WPS的docx格式文件

    Python docx module for Word or WPS processing 本文是通过docx把word中的表格中的某些已填好的内容提取出来,存入excel表格. 首先安装docx的p ...

  5. FreeMarker中文帮助手册API文档,基础入门学习文档

    FreeMarker中文帮助手册API文档,基础入门学习文档 分类: 编程技术 发布: bywei 浏览: 7 日期: 2011年5月28日 分享到: QQ空间 新浪微博 腾讯微博 人人网 什么是Fr ...

  6. python docx模块如何删除段落_在pythondocx中更改段落格式

    我试图使用Python的Python docx模块更改多个段落的格式.在from docx import Document from docx.shared import Pt from docx.s ...

  7. python下载word文件-Python用python-docx读写word文档

    备注: doc是微软的专有的文件格式,docx是Microsoft Office2007之后版本使用,其基于Office Open XML标准的压缩文件格式,比 doc文件所占用空间更小.docx格式 ...

  8. python 打开word文件_python下载word文件-Python用python-docx读写word文档

    备注: doc是微软的专有的文件格式,docx是Microsoft Office2007之后版本使用,其基于Office Open XML标准的压缩文件格式,比 doc文件所占用空间更小.docx格式 ...

  9. 应用python的docx模块解析word文件内容

    目录 工作问题 涉及知识点 实现过程 目标 调用对应的库和模块 定义通用方法 1.[遍历全部的同格式文件]返回一个文件夹内,限定某类格式文件,返回全部这类文件的绝对路径 2.[提取段落&表格中 ...

最新文章

  1. iOS6.0 xcode4.5 设置横屏
  2. html中属性选择器是什么,为什么在CSS选择器/ HTML属性中首选使用破折号?
  3. python视频人脸检测_Python基于OpenCV实现视频的人脸检测
  4. linux之type命令
  5. codeFight-Python编程训练(2)
  6. 6月16日!蒋江伟深度解读基础云产品生态战略 | 凌云时刻
  7. 教学案例 计算机,计算机教学案例
  8. Java飞机大战项目实战
  9. 为什么DataGridView不出现滚动条?它的ScrollBars属性我设置为Both了
  10. rac 配置oracle互信,Oracle19C RAC 用户互信问题处理
  11. ODU帧转OTU帧流程
  12. 程序员的选择,技术or管理
  13. C#API说明【Write函数】[汉字转拼音]
  14. 网络摄像头无插件直播H265编码视频播放器EasyPlayer网页播放器不能播放怎么处理?
  15. 如何成为一名项目经理
  16. 1.3 C++常量 (Constants )
  17. 虹科分享 | 集中管理的安全USB驱动器的好处
  18. Windows(Win7)下用Xming实现X11图形界面功能
  19. ISBN书号 API数据接口
  20. 黑牛外汇交易系统2007年12月27日做单记录

热门文章

  1. 国家职业资格证书等级说明
  2. 3Ds Max 精模obj模型导入ArcGIS Pro
  3. Python的you-get下载工具
  4. 原生js输出html5,原生JS+HTML5实现的可调节写字板功能示例
  5. C 语言之一维数组(详细版)
  6. devc语言图形编程教程_C语言是怎么实现图形界面的?
  7. qq营销软件开发_标签管理:为开发人员-营销商关系带来和平
  8. 扁平化图标!让total commander跟上时代潮流!
  9. OUC2021软件工程OUC拼车程序小组Alpha阶段软件测试报告
  10. OUC2021软件工程“OUC拼车“校园拼车程序小组Gamma阶段软件测试报告