python rtftotxt_利用python将docx文件转为txt
背景:工作中需要将文件夹下的若干word文件docx转换为对应txt文本格式
因此需要将docx中文本读取出来,然后保存为txt格式即可
转换docx文件
需要的python模块为python-docx: https://python-docx.readthedocs.io/en/latest/index.html, 导入模块时候导入docx
(只能读取.docx文件,不能读取.doc文件)
注意,在PyPi里还有一个叫docx的库,已经停止更新,不建议使用)
http://www.cnblogs.com/geek-arking/p/9300617.htmlimport docx
from docx import Document
path = "C:\\Users\\Administrator\\Desktop\\word.docx"
document = Document(path)
for paragraph in document.paragraphs:
print(paragraph.text)
上面的方法只能读取docx文件,如果读取doc会报错
结果报错:docx.opc.exceptions.PackageNotFoundError: Package not found。还是无法识别doc
“改变拓展名并没有改变其编码方式,因此无法读取文本内容,需将doc文件用word另存为docx后再用python-docx读取其内容”
转换doc文件
对于要转换的doc文件,网上的资料都是使用win32,需要安装pypiwin32
https://www.cnblogs.com/AlgorithmDot/p/3386918.html
出现的问题:
通过上面的方法,有时可以直接将doc转换为txt文件,有时候会报错。
这里我们可以考虑将doc文件直接转换为docx然后再通过上面的方法读取为txt,如果手动将doc修改为txt或者docx,打开文件会显示乱码,但是可以用其提供的SaveAs方法将.doc文档利用手动的方式“另存为”.docx文档,就能够成功打开转化后的.docx文档,
doc.SaveAs(tmp +'.docx', 16)
其中16的含义如下:
利用win32com接口直接调用office API,好处是简单、兼容性好,只要office能处理的,python都可以处理,处理出来的结果和office word里面“另存为”一致。
下面是office 2007支持的全部文件格式对应表:
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
照着字面意思应该能对应到相应的文件格式。
docx模块使用
1、新建或打开文件。这个比较简单用docx的Document类,若指定路径则是打开文档;若没有指定路径则是新建文档#coding:utf-8
import docx
doc_new = docx.Document() #新建文档
doc = docx.Document(ur'C:\1.docx')#读取文档
2、保存文件。有打开,就有保存。用Document类的save方法,其中参数是保存的文件路径,或者要保存的文件流。一般指定路径即可。
doc.save(path_or_stream)
3、对象集合。python-docx包含了word文档的相关对象集合。doc.paragraphs#段落集合
doc.tables#表格集合
doc.sections#节 集合
doc.styles#样式集合
doc.inline_shapes#内置图形 等等...
4、插入段落。段落是word最基本的对象之一。doc.add_paragraph(u'第一段',style=None)#插入一个段落,文本为“第一段”#默认是不应用样式,这里也可以不写style参数,或者指定一个段落样式
doc.add_paragraph(u'第二段',style='Heading 2')#这些样式都是word默认带有的样式,可以直接罗列出来有哪些段落样式
print[s.nameforsindoc.stylesifs.type==1]
5、新增样式。这个帮助文档里面说得不仔细,而且还是英文的。我手头上的项目用到这个,就自己琢磨出怎么使用,如下。#coding:utf-8
from docx import Document
from docx.shared import RGBColor#这个是docx的颜色类
doc = Document()#新建文档
style = doc.styles.add_style('style name 1',2)#新增样式(第一个参数是样式名称,第二个参数是样式类型:1代表段落;2代表字符;3代表表格)
style.font.color.rgb = RGBColor(0x0,0x0,0xff)#设置具体样式(修改样式字体为蓝色,当然还可以修改其他的,大家自己尝试)
6、应用字符样式。字符自然是在段落里面的,可以采用下面方法给段落追加文字和设置字符样式。
#插入一个空白段落
p = doc.add_paragraph('')
p.add_run('123', style="Heading 1 Char")
p.add_run('456')
p.add_run('789', style="Heading 2 Char")
#这样一个段落就应用了两个字符样式,中间“456”就没应用样式
printp.text#输出结果是u'123456789' 也还是连续的
7、设置字体。当然可以不用通过设置样式对某些字进行设置,也可以直接设置。
p = doc.add_paragraph('')
r = p.add_run('123')
r.font.bold =True#加粗
r.font.italic =True#倾斜 等等...
8、表格操作。表格也是经常用到的一种对象类型。#新建一个2x3的表格,style可以不写
table=doc.add_table(rows=2,cols=3,style=None)#可以用table 的rows和columns得到这个表格的行数和列数
printlen(table.rows)
printlen(table.columns)#遍历表格
for row in table.rows:
row.cells[0].text ='1'#
print row.cells[0].text#新增行或列
table.add_row()
table.add_column()
python rtftotxt_利用python将docx文件转为txt相关推荐
- python自动化办公:利用python将签名自动插入docx文件
一.利用python将签名自动插入docx文件 一张无背景的个性签名 将图片自动识别到docx.pdf中的右下角并插入! 首先这是本人在某微信小程序自动生成的个性签名 一.安装python-docx包 ...
- python 将excel文件转换为txt文件_python利用pandas将excel文件转换为txt文件的方法
python将数据换为txt的方法有很多,可以用xlrd库实现.本人比较懒,不想按太多用的少的插件,利用已有库pandas将excel文件转换为txt文件. 直接上代码: ''' function:将 ...
- python excel文件转换成字符串_python利用pandas将excel文件转换为txt文件的方法
python将数据换为txt的方法有很多,可以用xlrd库实现.本人比较懒,不想按太多用的少的插件,利用已有库pandas将excel文件转换为txt文件. 直接上代码: ''' function:将 ...
- 通过Python的speech_recognition库将音频文件转为文字
文章目录 前言 一.音频准备 二.音频声音 三.格式转换 四.音频转文字 1.引入库 2.定义音频路径 3.创建一个Recognizer对象 4.打开音频文件,将音频文件读入Recognizer对象 ...
- python 使用字节流bytes格式读取文件转为int格式,再转为0,1字符串格式
python 使用字节流bytes格式读取文件转为int格式,再转为0,1字符串格式 with open('test.jpg', 'rb') as src:t = src.read(1) # 读进1B ...
- 【Python】利用python进行数据分析——以新型冠状病毒疫情为例
[Python]利用python进行数据分析--以新型冠状病毒疫情为例 重要说明 只提交该文档这一个文件,做完后提交到学习通"结课大作业"中. 1. 文件命名: 必须以学号-姓名- ...
- python实现图书管理系统——通过excel文件或者TXT文件存放数据
用python实现图书管理系统--通过excel文件或者TXT文件存放数据 话不多说,先上图,看看运行起来的效果: 由上图可知,我实现的主要功能: 用户注册 用户登录 添加图书 查询图书 删除图书 修 ...
- Python:利用python编程实现三维图像绘制展示(六面体旋转、三维球柱状体、下雪场景等)
Python:利用python编程实现三维图像绘制展示(六面体旋转.三维球柱状体.下雪场景等) 目录 利用python编程实现三维图像绘制展示(六面体旋转.三维球柱状体.下雪场景等) 1.实现六面体旋 ...
- Python:利用python编程将上海十六区,2020年5月份房价实时地图(数据来源房天下)进行柱状图、热图可视化
Python:利用python编程将上海十六区,2020年5月份房价实时地图(数据来源房天下)进行柱状图.热图可视化 目录 上海十六区,2020年5月份房价实时地图(数据来源房天下)可视化 雷达图.柱 ...
最新文章
- 最全技术剖析:百度视觉团队获世界最大规模目标检测竞赛冠军
- 如何优雅的设计java异常
- 特斯拉AI总监:我复现了LeCun 33年前的神经网络,发现和现在区别不大
- 一篇网站架构的文章:一步步构建大型网站架构
- python反转列表_python列表反转
- V-rep对UR3机械臂仿真路径规划
- P1083 借教室(差分+二分)
- Request.Params[CategoryID]
- JVM系列一:Java虚拟机与操作系统结构比较
- import python settings from_python settings 中通过字符串导入模块
- [Java]利用itextpdf将多个多页的PDF合并为一个
- php常用字体大小,推荐:PHP编辑器常用的几种字体下载
- python批量查询高德地图经纬度(支持xlxs)
- 站在两个世界的边缘 程浩,一个认真生活过的人
- 第6-8课:分离轴算法(SAT)与碰撞检测(图文篇)
- 苹果A16的遮羞布被撕下了,性能提升幅度有限,被嘲讽为挤牙膏
- AES - Openssl AES 函数说明
- BGP协议学习笔记——BGP基础
- C/C++面试感受和经验以及面试题收藏(转)
- 清理zabbix监控中磁盘空间不足
热门文章
- hnu 暑期实训之Maya历法
- An efficient and robust line segment matching approach based on LBD descriptor and pairwise geometri
- 动态规划之回文串问题
- C++中1LL避免强制转换
- AcWing 1054. 股票买卖
- Youki的C++命名规则
- Ubuntu 20.04 安装CUDA11.1 和cudnn 8.0.5
- 给你出道题---N个数字的静态决策区分问题
- [转]网易云音乐Android版使用的开源组件
- SpringBoot定时器