【Python3 爬虫学习笔记】用Python进行Word文件操作

用Win32com组件操作Word文件

Python语言可通过Win32com组件对Microsoft Office文件进行存取,而且Python已内置了Win32com组件,不需要另外安装。
要用Win32com组件操作Microsoft Office文件,计算机必须已确保安装了Microsoft Office软件。

实现新建文件并保存

Win32com组件不需要安装,直接导入就可使用,下面我们先导入Win32com组件的client模块:

from win32com import client

要处理Word文件,需先创建Word应用程序变量。语法为:

应用变量 = client.gencache.EnsureDispatch('Word.Application')

例如,建立一个名为word的Word应用程序变量:

word = client.gencache.EnsureDispatch('Word.Application')

Word应用程序变量的Visible、DisplayAlerts属性及Documents方法:

  • Visible:1表示要显示Word界面,0表示不显示Word界面。
  • DisplayAlerts:1表示要显示Word警告信息,0表示不显示Word警告信息。
  • Documents:操作Word文件,如打开文件、保存文件等。
新建文件

用Win32com组件新建文件是通过Documents的Add()方法来实现,语法为:

文件变量 = 应用变量.Documents.Add()

例如,新建一个文件,并保存至变量doc:

doc = word.Documents.Add()

文件内容的位置可通过文件变量的Range()方法来设置,语法为:

范围变量 = 文件变量.Range(起始位置, 结束位置)

起始位置及结束位置为整数,表示字符的起始及结束位置。例如,把文件前10个字符保存至range1变量:

range1 = doc.Range(0, 9)

向Word文件中插入文本可通过两种方法来实现。一种方法是通过InsertAfter()方法,此方法把文字插入到范围变量结束位置之后,执行插入操作以后,位置变量的结束值会变为所插入的内容后的位置值,语法为:

范围变量.InsertAfter(文字)

另一种方法是通过InsetBefore()方法,此方法是将文字插入到范围变量起始位置的前面,语法为:

范围变量.InsertBefore(文字)

使用InsertBefore()方法插入文本后不会改变范围变量的起位置起始值,再次使用InsertBefore方法时,还是会把文字插入到变量最初起始位置值之前。

保存文件

本案例的Word文件位于media文件夹中(media文件夹与.py文件位于同一目录中)。由于Win32com组件存取文件时不能使用相对路径,所以必须先取得Python程序文件所在路径(即media文件夹的路径),语法为:

import os
路径变量 = os.path.dirname(__file__)

保存Word文件的语法为:

文件变量.SaveAd(路径变量)

例如,把文件保存在media文件夹中,文件名为test1.docx:

cpath = os.path.dirname(__file__)
doc.SaveAs(cpath + "\\media\\test1.docx")

处理完Word文件,通常会在程序最后关闭Word文件及应用,以免占用系统资源,语法为:

文件变量.Close()
应用变量.Quit()

猜你喜欢

转载自blog.csdn.net/htsait4113/article/details/84644051
今日推荐