docx2txt库怎么在Python中使用
这期内容当中小编将会给大家带来有关docx2txt库怎么在Python中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
Python主要用来做什么
Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开发;5、游戏开发;6、桌面应用开发。
安装
pip install docx2txt
运行
1、命令行运行
# extract textdocx2txt file.docx# extract text and imagesdocx2txt -i /tmp/img_dir file.docx
2、在python中调用
# extract textdocx2txt file.docx# extract text and imagesdocx2txt -i /tmp/img_dir file.docx
补充:python docx提取word中的目录及文本框中的文本
问题描述
python docx提取word中的目录及文本框中的文本
解决方案
因未在docx库找到直接识别word中目录及文本框中文本的方法,所以采用了一个“笨”方法,docx库可以把word文档解析成xml格式,以解析xml的方式查找目录及文本框中文本,具体做法:
迭代出文档的所有element,其中目录的tag为“std”,找到它后提出他的所有文本即为目录文本;文本框的tag 为“textbox”,找到它后还要继续下钻寻找tag为 'r'的element,提取其文本则为文本框中文本。
# 提取word目录file = docx.Document(file_path)children = file.element.body.iter()child_iters = []for child in children: # 通过类型判断目录 if child.tag.endswith('main}sdt'): for ci in child.iter(): if ci.text and ci.text.strip(): child_iters.append(ci)catalog = [ci.text for ci in child_iters]
# 提取word文本框中文本file = docx.Document(file_path)children = file.element.body.iter()child_iters = []for child in children: # 通过类型判断目录 if child.tag.endswith('textbox'): for ci in child.iter(): if ci.tag.endswith('main}r'): child_iters.append(ci)textbox = [ci.text for ci in child_iters]
文本域的标签,第一次找的是AlternateContent,后来发现对有些文本域失效;第二次又找到了pict,基本覆盖了测试的所有文本域;第三次把word文档的标签都找出来看了一下,发现textbox这个标签看着更靠谱,用它测试了一下,也能覆盖所有的测试文本域,决定就选择这个标签。
提取文本后,又有了新需求,提取的文本很多都不成句,呈短语或单词的形式,需要把提取的文本还原成段落形式:
file = docx.Document(file_path)children = file.element.body.iter()child_iters = []tags = []for child in children: # 通过类型判断目录 if child.tag.endswith(('AlternateContent','textbox')): for ci in child.iter(): tags.append(ci.tag) if ci.tag.endswith(('main}r', 'main}pPr')): child_iters.append(ci)text = ['']for ci in child_iters : if ci.tag.endswith('main}pPr'): text.append('') else: text[-1] += ci.text ci.text = ''trans_text = ['***'+t+'***' for t in text]print(trans_text)i, k = 0, 0for ci in child_iters : if ci.tag.endswith('main}pPr'): i += 1 k = 0 elif k == 0: ci.text = trans_text[i] k = 1file.save('E:test.docx')
上述就是小编为大家分享的docx2txt库怎么在Python中使用了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341