读取docx文件并读出相应信息

版权声明:猪小哥 https://blog.csdn.net/food_for_thought/article/details/82499142

近期收集报名表,并将报名表的信息汇总。
令人难受的是,这些报名表都是 word 文档,几百份一个个复制下来真的费时费力(虽然可以看看姑娘们的靓照)。

那么,我们是否能用 python 实现这一功能呢?只会 pandas 这个库的我经过一下午的奋战,稍微了解了下相关的库。

首先,根据网上的信息,稀里糊涂地就导入了几个库。

import win32com
from win32com.client import Dispatch
from docx import Document
from openpyxl import Workbook

然后,我们定义一个可以读取 word 函数,同时让其变成 excel 的文件。

def parse_docx(f):
  d = Document(f)
  t = d.tables[0]
  name = t.cell(0,2).text  # 比如说标题在表格中位于(0,2)
  place1 = t.cell(1,2).text   # 籍贯
  gender = t.cell(0,10).text  # 性别
  print(name, gender, place1, end='n/')
  list = [name, gender, place1]
  workbook = Workbook()
  booksheet = workbook.active
  booksheet.append(list)
  workbook.save(f.split('.')[0] + '.xlsx')

最后,我们把这个函数放入一个循环中遍历整个文件夹。

if __name__ == "__main__":
  w = win32com.client.Dispatch('Word.Application')

  # 遍历文件
  PATH = "python\word_to_excel\data_try"  # path:文件路径
  doc_files = os.listdir(PATH)
  for doc in doc_files:
    if os.path.splitext(doc)[1] == '.docx':
      try:
        parse_docx(PATH+'\\'+doc)
      except Exception as e:
        print(e)

这样下来,我们就可以轻轻松松将几百份报名表的信息放到汇总表里面了,只不过方法仅限于各个报名表制式一样,如果哪个报名表多打几个空格就可能在读取信息时读错位置。

如何使用Python合并多个excel文件或者sheet?
还没学会,知乎这个链接里面有怎么合并的代码,但是我用的时候没有权限打开文件夹。


以上是在杨幽科技学到的。

猜你喜欢

转载自blog.csdn.net/food_for_thought/article/details/82499142