python提取word目录_python批量提取word内信息
单位收集了很多word格式的调查表,领导需要收集表单里的信息,我就把所有调查表放一个文件里,写了个python小程序把所需的信息打印出来
#coding:utf-8
import os
import win32com
from win32com.client import Dispatch, constants
from docx import Document
def parse_doc(f):
"""读取doc,返回姓名和行业
"""
doc = w.Documents.Open( FileName = f )
t = doc.Tables[0] # 根据文件中的图表选择信息
name = t.Rows[0].Cells[1].Range.Text
situation = t.Rows[0].Cells[5].Range.Text
people = t.Rows[1].Cells[1].Range.Text
title = t.Rows[1].Cells[3].Range.Text
print name, situation, people,title
doc.Close()
def parse_docx(f):
"""读取docx,返回姓名和行业
"""
d = Document(f)
t = d.tables[0]
name = t.cell(0,1).text
situation = t.cell(0,8).text
people = t.cell(1,2).text
title = t.cell(1,8).text
print name, situation, people,title
if __name__ == "__main__":
w = win32com.client.Dispatch(‘Word.Application‘)
# 遍历文件
PATH = "H:\work\\aaa" # windows文件路径
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
elif os.path.splitext(doc)[1] == ‘.doc‘:
try:
parse_doc(PATH+‘\\‘+doc)
except Exception as e:
print e
下载安装win32com
from win32com import client as wc
word = wc.Dispatch(‘Word.Application‘)
doc = word.Documents.Open(‘c:/test‘)
doc.SaveAs(‘c:/test.text‘, 2)
doc.Close()
word.Quit()
这种方式产生的text文档,不能用python用普通的r方式读取,为了让python可以用r方式读取,应当写成
doc.SaveAs(‘c:/test‘, 4)
注意:系统执行完成后,会自动产生文件后缀txt(虽然没有指明后缀)。
在xp系统下面,应当,
open(r‘c:\text‘,‘r‘)
wdFormatDocument = 0 wdFormatDocument97 = 0 wdFormatDocumentDefault = 16 wdFormatDOSText = 4 wdFormatDOSTextLineBreaks = 5 wdFormatEncodedText = 7 wdFormatFilteredHTML = 10 wdFormatFlatXML = 19 wdFormatFlatXMLMacroEnabled = 20 wdFormatFlatXMLTemplate = 21 wdFormatFlatXMLTemplateMacroEnabled = 22 wdFormatHTML = 8 wdFormatPDF = 17 wdFormatRTF = 6 wdFormatTemplate = 1 wdFormatTemplate97 = 1 wdFormatText = 2 wdFormatTextLineBreaks = 3 wdFormatUnicodeText = 7 wdFormatWebArchive = 9 wdFormatXML = 11 wdFormatXMLDocument = 12 wdFormatXMLDocumentMacroEnabled = 13 wdFormatXMLTemplate = 14 wdFormatXMLTemplateMacroEnabled = 15 wdFormatXPS = 18
照着字面意思应该能对应到相应的文件格式,如果你是office 2003可能支持不了这么多格式。word文件转html有两种格式可选wdFormatHTML、wdFormatFilteredHTML(对应数字 8、10),区别是如果是wdFormatHTML格式的话,word文件里面的公式等ole对象将会存储成wmf格式,而选用 wdFormatFilteredHTML的话公式图片将存储为gif格式,而且目测可以看出用wdFormatFilteredHTML生成的HTML 明显比wdFormatHTML要干净许多。
当然你也可以用任意一种语言通过com来调用office API,比如PHP.
from win32com import client as wc
word = wc.Dispatch(‘Word.Application‘)
doc = word.Documents.Open(r‘c:/test1.doc‘)
doc.SaveAs(‘c:/test1.text‘, 4)
doc.Close()
import re
strings=open(r‘c:\test1.text‘,‘r‘).read()
result=re.findall(‘\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)|\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)‘,strings)
chan=re.sub(‘\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)|\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)‘,‘()‘,strings)
question=open(r‘c:\question‘,‘a+‘)
question.write(chan)
question.close()
answer=open(r‘c:\answeronly‘,‘a+‘)
for i,a in enumerate(result):
m=re.search(‘[A-D]‘,a)
answer.write(str(i+1)+‘ ‘+m.group()+‘\n‘)
answer.close()
chan=re.sub(r‘\xa3\xa8\s*[A-D]\s*\xa3\xa9‘,‘()‘,strings) #不要(),容易引起歧义。
原文:http://www.jb51.net/article/70819.htm
python提取word目录_python批量提取word内信息相关推荐
- python给word添加水印_python 批量给 word,excel,ppt 或 pdf 文件添加水印
python 批量给 word 或 pdf 文件添加水印 更新 20200310 更新 README,对于中文显示为方块的问题,需使用宋体(simsun.ttc).黑体(simhei.ttf)等字体. ...
- python批量更改word文件名_python批量修改word文件名
最近不小心把硬盘给格式化了,由于当时的文件没有备份,所以一下所有的文件都没有了,于是只能采取补救措施,用文件恢复软件恢复了一部分的数据出来,但是恢复完毕的文件的文件名全丢了,所有的文件只有代号,如下面 ...
- python 修改word内容_python批量修改word文件名
最近不小心把硬盘给格式化了,由于当时的文件没有备份,所以一下所有的文件都没有了,于是只能采取补救措施,用文件恢复软件恢复了一部分的数据出来,但是恢复完毕的文件的文件名全丢了,所有的文件只有代号,如下面 ...
- python批量操作word文档实战_python批量实现Word文件转换为PDF文件
本文为大家分享了python批量转换Word文件为PDF文件的具体方法,供大家参考,具体内容如下 1.目的 通过万能的Python把一个目录下的所有Word文件转换为PDF文件. 2.遍历目录 作者总 ...
- 使用python搭配pandoc实现html批量转word
使用python搭配pandoc实现html批量转word 好兄弟工作上有一批(5000+)html的文档需要转成word格式,他采用了两种实现方式,但都有些问题: 直接改后缀有些会乱码 --> ...
- 用Word转换向导批量转换Word文档(转)
用Word转换向导批量转换Word文档(转) 目前,我校所在地区教育系统上下级之间文件材料的下达和上报都实现了网络传输.为了提高办公效率,主管教育部门要求这些材料一律使用纯文本格式.而由于排版 ...
- 批量修改html文件内容,批量修改word文件内容 批量修改WORD文件的页眉页脚
批量修改多个Word文档内容 同时批量修改多个word文档步骤1把要批量修改的文档都放在同一个文件夹中同时批量修改多个word文档步骤2在修改前,先确定多个word文档文件要被修改的内容如小小要修改的 ...
- 【python脚本】word批注状态批量提取器V1版本
前言 阶段性胜利也要纪念一下!在 [VBA脚本]提取word文档中所有批注的信息和待解决状态 中,规划软件了最终版的状态: 1.选取目录,之后递归得到所有word文档: 2.对每一个word文档,抓取 ...
- word数据提取技巧:如何批量提取身份证出生日期
在实际工作中,我们时常在整理员工资料或客户信息时需要从身份证号中提取对应人员的出生日期等看似重复繁琐的工作,是不是瞬间觉得工作量好大. 机智的同学,第一时间会想到使用Excel公式或函数来提取整理.但 ...
最新文章
- Windows 软件管理命令行工具scoop介绍
- hadoop数据流转过程分析
- 由神经网络的迭代次数计算输出值并评价网络性能
- ​Linux下C如何调用PCI Lib函数
- Daily Scrum02 12.04
- Jzoj4778 数列编辑器
- CSS3 iphone式开关的推荐写法
- 【C++grammar】析构、友元、拷贝构造函数、深浅拷贝
- 微课|中学生可以这样学Python(例5.1):生成不重复的随机数
- 信息化与工业化融合的内涵、层次和方向
- python布尔类型运算_Python对象类型及其运算方法(详解)
- js实现点击“验证码”开始倒计时
- Python基本数据类型之tuple
- C++ 从函数参数中获取指针 指针传递
- 基于SSM的医院病历管理系统
- 文件服务器程序,CuteHttpFileServer(文件共享服务器软件)
- python控制电脑音量,声音之控制音量,,
- linux 迁移类型,迁移到Linux前必须要知道的五个方面
- 美国大学计算机理论专业phd,揭秘美国大学计算机专业PHD申请难度
- CentOS7安装WPS中文字体问题