当前位置:  首页>> 技术小册>> Python与办公-玩转Word

7.2 打开与保存

一个Word文档就是一个Word文件,Word文件类型主要分为doc和docx两种,doc是旧版(Word97-Word2003),docx是新版(Word2007及以上),docx当然是优于doc的,主要表现是docx的性能更好且体积更小。还要注意,python-docx只支持docx,不支持doc。

7.2.1 新建文档

在python-docx中,如果你要新建一个Word文档,那是非常简单的,只需要实例化一个Document对象即可,代码如下:

  1. from docx import Document
  2. doc = Document()

7.2.2 保存文档

新建和保存文档都是最基本的操作,如果新建了一个文档最后却没有保存到硬盘上,那就是白忙一场。保存文档也不难,就是调用下Document对象的save()方法,把文件路径传进去就可以了,文件路径支持相对路径和绝对路径,先看一下我的写法:

  1. import os
  2. from docx import Document
  3. # 获取当前工作路径(本代码文件的绝对路径)
  4. work_path = os.getcwd()
  5. # 目标文件夹名
  6. dir_name = "./word_ files/"
  7. # 目标文件名
  8. file_name = "test.docx"
  9. # 拼接目标文件夹绝对路径
  10. target_dir = os.path.join(work_path,dir_name)
  11. print(target_dir)
  12. # 如果目标文件夹不存在则创建
  13. if not os.path.exists(target_dir):
  14. os.makedirs(target_dir)
  15. # 拼接完整绝对路径
  16. full_path = os.path.join(work_path,dir_name,file_name)
  17. print(full_path)
  18. # 新建文档
  19. doc = Document()
  20. # 保存文档
  21. doc.save(full_path)

不是说保存文档很简单吗?我这居然写了那么多代码,你看了我的代码就知道其实真正保存文档的就只有最后一行代码,上面的代码都是在处理路径,主要目的也是为了带大家再熟悉一下路径处理。我要做的是在当前工作路径,也就是此代码文件所在的文件夹,里面新建一个word_files文件夹,然后把文档保存到word_files文件夹里。

获取当前工作路径可以使用os.getcwd()方法,判断路径是否存在可以使用os.path.exists()方法,拼接路径可以使用os.path.join()方法,这几个方法也在os模块那一节的那个表格里,如果你之前有练习过应该是可以想起来的。

7.2.3 打开文档

如果要打开一个已存在的文档也是相当简单的,只要在实例化Document对象的时候传入文档路径即可,支持绝对路径和相对路径,代码如下:

  1. from docx import Document
  2. doc = Document("./word_ files/test.docx")

实例化Document对象时,除了可以传入文档路径,还可以传入一个文件操作符。也许一秒前你眼前又会闪过一个大问号,文件操作符?怎么听起来那么耳熟呢?文件操作符就是读写文件的open()函数返回的那个对象啊,应该想起来了吧,那么保存Word文档的另一个写法也就没什么问题了。我这里还是展示一下使用with关键字搭配open()函数的写法,代码如下:

  1. from docx import Document
  2. with open("./word_ files/test.docx","rb") as f:
  3. doc = Document(f)

该分类下的相关小册推荐: