导读:Microsoft Word在当前使用中是占有巨大优势的文字处理器,这使得Word专用的档案格式Word 文件(.docx)成为事实上最通用的标准。

在日常工作中,有些时候会有很多重复的工作,比如批量的替换、报名表、合同、邀请函等很多格式一样的文件,要对这些文件进行读写与汇总,程序员的智慧就是把重复的工作简单化,下面介绍一些经验汇总,请读者注意,程序学习最重要的是思想。

作者:老A

如需转载请联系大数据(ID:hzdashuju)

01 模块的安装和导入

python-docx模块安装需要在cmd命令行中输入:

pip install python-docx

02 读取已存在的一个事先有内容的测试文件test1.docx代码

import docxfile=docx.Document("/test/test1.docx")print("段落数:"+str(len(file.paragraphs))) for para in file.paragraphs:    print(para.text)for i in range(len(file.paragraphs)):print("第"+str(i)+"段的内容是:"+file.paragraphs[i].text)file=docx.Document("/test/test1.docx")print("段落数:"+str(len(file.paragraphs))) for para in file.paragraphs:    print(para.text)for i in range(len(file.paragraphs)):print("第"+str(i)+"段的内容是:"+file.paragraphs[i].text)

03 文档中内容批量替换

首先程序是读取文件夹下文件名称,获取绝对路径,按绝对路径读取文件,把读取的文件中指定内容进行替换,最后把替换后的内容保存到另外的文件夹中:

import osxmldir='D:/test /test'xmllist=os.listdir(xmldir)for xml in xmllist:    if '.txt ' in txt       fo=open(xmldir+'/'+'new_{}'.format(txt),'w')      print('{}'.format(txt))      fi=open(xmldir+'/'+'{}'.format(txt),'r')      content=fi.readlines()      for line in content:         line=line.replace('替换前的内容','替换后的内容')         fo.write(line)      fo.close()      print('替换完成')xmldir='D:/test /test'xmllist=os.listdir(xmldir)for xml in xmllist:    if '.txt ' in txt       fo=open(xmldir+'/'+'new_{}'.format(txt),'w')      print('{}'.format(txt))      fi=open(xmldir+'/'+'{}'.format(txt),'r')      content=fi.readlines()      for line in content:         line=line.replace('替换前的内容','替换后的内容')         fo.write(line)      fo.close()      print('替换完成')

04 利用docxtpl将指定数据

本经验是从test/exce.csv文件中读完并写入到test/合同例子.docx中保存输出。

import osfrom docxtpl import DocxTemplatetpl = DocxTemplate('test/合同例子.docx')context = {   "name": name,   "department": department,   "position": position,   "time": time,   "id": id_card,   "addr": addr,}tpl.render(context)tpl.save("{}的合同.docx".format(name))from docxtpl import DocxTemplatetpl = DocxTemplate('test/合同例子.docx')context = {   "name": name,   "department": department,   "position": position,   "time": time,   "id": id_card,   "addr": addr,}tpl.render(context)tpl.save("{}的合同.docx".format(name))

05 将所有受邀者的公司名和代表姓名填入路径为test/test_name_list.xlsx的表格

在需要填字的地方打上“***”,然后Python来填字,最后保存为test/邀请函.docx,下面代码段为读入信息,然后写入word文件中。

from openpyxl import load_workbookwb=load_workbook('teset/test_name_list.xlsx')ws=wb['name']names=[]for row in range(2,ws.max_row+1):    company=ws["A"+str(row)].value    name=ws["B"+str(row)].value    names.append(" {} {} ".format(company,name))doc=docx.Document('test/邀请函.docx')for name in names:    doc.paragraphs[1].runs[2].text=namedoc.save('test/邀请函_{}.docx'.format(name))import load_workbookwb=load_workbook('teset/test_name_list.xlsx')ws=wb['name']names=[]for row in range(2,ws.max_row+1):    company=ws["A"+str(row)].value    name=ws["B"+str(row)].value    names.append(" {} {} ".format(company,name))doc=docx.Document('test/邀请函.docx')for name in names:    doc.paragraphs[1].runs[2].text=namedoc.save('test/邀请函_{}.docx'.format(name))

word是坐在电脑前百分之九十的人都会用的办公软件,word东西少还好说,手动打开那样存入表格也简单,但是当数据达到几万几十万、几百万大数据级那就恐怖了,如果全靠手动,那么至少要连上一个月的班了,不能停息的那种!

每天重复一样的操作,恐怖吗?想想都可怕,这时候就是真正体现技术方面的能力了,很多东西都可以自动实现,如果手动的话,真不知道搞到猴年马月,耗时没有什么意义!

学习永不停牌,今天一小步明天一大步!

关于作者:老A,项目管理师,专业兴趣研究方向:大数据、计算机软件、通信工程。个人业余爱好是研究无人机制作,银元鉴赏与收藏。

本文为「大数据」内容合伙人之「鉴书小分队」活动读书笔记,由大数据粉丝原创,转载请与我们取得联系。

「大数据」内容合伙人之「鉴书小分队」上线啦!

最近,你都在读什么书?有哪些心得体会想要跟大家分享?

数据叔最近搞了个大事——联合优质图书出版商机械工业出版社华章公司发起鉴书活动。

简单说就是:你可以免费读新书,你可以免费读新书的同时,顺手码一篇读书笔记就行。详情请在大数据公众号后台对话框回复合伙人查看。

延伸阅读《利用Python进行数据分析(原书第2版)》

点击上图了解及购买

转载请联系微信:togo-maruko

推荐语:Python数据分析经典畅销书全新升级,第1版中文版累计销售100000册。针对Python 3.6进行全面修订和更新,涵盖新版的pandas、NumPy、IPython和Jupyter。

有话要说?

Q: Python还能搞定哪些重复性的工作?

欢迎留言与大家分享

猜你想看? 

  • 想用Python爬小姐姐图片?那你得先搞定分布式进程

  • 深度学习高能干货:手把手教你搭建MXNet框架

  • 教你用OpenCV实现机器学习最简单的k-NN算法

  • 41款实用工具,数据获取、清洗、建模、可视化都有了

更多精彩? 

在公众号对话框输入以下关键词

查看更多优质内容!

PPT | 报告 | 读书 | 书单 | 干货 

大数据 | 揭秘 | Python | 可视化

AI | 人工智能 | 5G | 区块链

机器学习 | 深度学习 | 神经网络

1024 | 段子 | 数学 | 高考

据统计,99%的大咖都完成了这个神操作

觉得不错,请把这篇文章分享给你的朋友

转载 / 投稿请联系:baiyu@hzbook.com

更多精彩,请在后台点击“历史文章”查看

点击阅读原文,了解更多

入门干货:Python操作Word文件经验分享相关推荐

  1. python入门教程2word-入门干货:Python操作Word文件经验分享

    原标题:入门干货:Python操作Word文件经验分享 导读:Microsoft Word在当前使用中是占有巨大优势的文字处理器,这使得Word专用的档案格式Word 文件(.docx)成为事实上最通 ...

  2. python 操作word文件案例

    基础知识 安装python-docx pip install python-docx 打开文档 doc = Document('test.docx') 添加段落 paragraph = doc.add ...

  3. python操作word文件_利用PYTHON操作WORD文档

    office 2007 中不能直接打开 VB 编辑器,请按 Alt + F11 打开. import win32com.client # 导入脚本模块 WordApp = win32com.clien ...

  4. Python操作word手册,与打包生成word文件

    title: Python操作word手册 copyright: true top: 0 date: 2018-11-23 14:59:03 tags: python-word categories: ...

  5. python操作word详细操作_Python操作Word的入门教程

    Python操作Word的入门教程 前言 今天来介绍下,如何用 Python 来操作 Word. 再来介绍操作 Word 之前,先来说一个最近看书学到的法则,即 3W 法则. 3W:3W分别指 Wha ...

  6. 如何使用 Python 操作 .npy 文件?详细教程分享

    如何使用 Python 操作 .npy 文件?详细教程分享 .npy 文件是指 NumPy 存储数组数据的文件格式,它具有快速.高效和易存储等优点.在科学计算和机器学习领域中,.npy 文件的使用非常 ...

  7. python入门教程2word-使用python操作word

    前言 最近工作中,需要将查询的一段时间的数据可视化,并导出为word格式.由于对word操作不熟悉,查阅了一下相关文档,这里简要记录一下如何使用python操作word. 说明 该代码记录了对word ...

  8. Python+Word:我已经使用“pip install docx”命令安装了扩展库docx,为什么无法运行书上的代码操作Word文件呢?

    操作Word文件的扩展库名字叫python-docx,不是docx.另外要注意,扩展库python-docx只能操作Word 2007或更新版本的文档,不能处理Word 2003之前的文档.

  9. 【干货】Kaggle 数据挖掘比赛经验分享

    [干货]Kaggle 数据挖掘比赛经验分享 Kaggle 于 2010 年创立,专注数据科学,机器学习竞赛的举办,是全球最大的数据科学社区和数据竞赛平台.笔者从 2013 年开始,陆续参加了多场 Ka ...

最新文章

  1. 自定义notebook扩展插件_Jupyter notebook安装扩展插件
  2. 客户端爬取-答网友问
  3. 【数据结构-查找】2.字符串(逐步演绎过程,超级详解KMP算法)
  4. leetcode - 343. 整数拆分
  5. sobel,canny(可滑动调节阈值)边缘检测算法opencv-python实战
  6. 如何使用jQuery更改超链接的href
  7. iOS导航控制器和Segues
  8. crackme用来测试程序设计人员的逆向工程技能的小程序。
  9. Xcode8去除控制台多余打印
  10. 案例分析:互联网营销和传统营销的区别
  11. 苹果App卡审怎么办?
  12. 网站编辑与传统媒体编辑的区别及特点
  13. JS中出现三个点(...)的作用是什么
  14. 如何一次打开多个Word文档
  15. 3-2Virsh控制工具
  16. 实现自己的日志打印系统
  17. SPSS随机对照研究总结
  18. java 方法规范_Java规范推荐
  19. 8051f CH375 优盘---ch375.c
  20. did模型(did模型适用范围)

热门文章

  1. Qt工作笔记-发送端发送Json格式的数据包,接收端解析数据包
  2. C++ STL list的大小
  3. UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\xe7‘ in position 295: illegal multibyte seq
  4. Apaceh配置httpd-vhosts虚拟主机
  5. sql:数据定义语言ddl
  6. Zookeeper 辅助 API
  7. 从零开始学PowerShell(7)编写一个函数体
  8. Apache Solr Velocity 注入远程命令执行漏洞复现 (CVE-2019-17558)
  9. C/C++ realloc()函数解析
  10. python 标准库之 glob 介绍(获取文件夹下所有同类文件)