利用python将docx文件转为txt
2023-10-27 23:01:10发布 浏览670次 信息编号:80715
友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。
利用python将docx文件转为txt
背景:工作中,需要将文件夹中的几个word文件docx转换为对应的txt文本格式。
因此,需要读取docx中的中文文本,并保存为txt格式。
转换 docx 文件
所需模块为 -docx: ,导入模块时导入 docx
(只能读取.docx文件,无法读取.doc文件)
注意PyPi中还有一个叫docx的库,已经停止更新,不建议使用)
文档
来自文档
路径 = "C:\\Users\\\\\\word.docx"
=(路径)
对于在 .:
打印(.文本)
上述方法只能读取docx文件。 如果你读doc,会报错。
结果是错误:docx.opc..:未找到。 仍然无法识别文档
“更改扩展名并不会改变其编码方式,因此无法读取文本内容。需要使用word将doc文件另存为docx,然后使用-docx读取其内容。”
转换文档文件
对于要转换的doc文件,网上的资料都是使用win32,需要安装。
出现的问题:
通过上面的方法,有时可以直接将doc转换为txt文件,但有时会报错。
这里我们可以考虑通过上面的方法将doc文件直接转换为docx然后读入txt。 如果手动修改doc为txt或docx,打开文件会显示乱码,但是可以使用提供的方法来使用.doc文档。 手动“另存为”.docx 文档,即可成功打开转换后的.docx 文档。
文档(tmp +'.docx', 16)
16的含义如下:
使用接口直接调用API的优点是简单、兼容性好。 只要能加工的都可以加工。 处理后的结果与Word中的“另存为”一致。
下面是2007支持的所有文件格式对应表:
= 0
= 0
终极 = 16
= 4
次数 = 5
= 7
= 10
= 19
= 20
吃了 = 21
= 22
= 8
= 17
= 6
= 1
= 1
= 2
KS = 3
= 7
= 9
= 11
= 12
= 13
= 14
= 15
= 18
根据字面意思,应该能够对应到相应的文件格式。
docx模块使用
1、创建或者打开一个文件。这个比较简单,使用了docx类。 如果指定路径,则打开文档; 如果未指定路径,将创建该文档。
#:utf-8
文档
= docx.()#新建文档
doc = docx.(ur'C:\1.docx')#阅读文档
2. 保存文件。 如果你打开它,你就会保存它。 使用类的save方法,参数为要保存的文件路径,或者是要保存的文件流。 一般情况下,指定路径即可。
文档.保存()
3.对象集合。 -docx 包含 Word 文档的相关对象的集合。
doc.#段落集合
doc.#表格集合
doc.# 节集合
doc.#风格集合
doc.#内置图形等...
4. 插入段落。 段落是 Word 中最基本的对象之一。
doc.(u'first ',style=None)#插入一个段落,文字为“first ”#默认不应用样式,这里也可以不写style参数,或者指定一个段落样式
doc.(u'第二段',style='2')#这些样式是word的默认样式。 您可以直接列出段落样式。
打印[s...类型==1]
5.添加新样式。 这个帮助文档解释的不仔细,而且也是英文的。 我在手头的项目中使用了这个,所以我自己弄清楚了如何使用它,如下。
#:utf-8
来自文档
来自 docx。 #这是docx的颜色类
doc = ()#新建文档
style = doc..('样式名称1',2)#新建样式(第一个参数为样式名称,第二个参数为样式类型:1代表段落;2代表字符;3代表表格)
style.font.color.rgb = (0x0,0x0,0xff)#设置具体样式(将样式字体改为蓝色,当然你也可以修改其他的,自己尝试一下)
6. 应用字符样式。 字符自然位于段落内。 您可以使用以下方法向段落添加文本并设置字符样式。
#插入一个空白段落
p = 文档。('')
p.('123',)
页('456')
p.('789',)
#这样一个段落应用了两种字符样式,中间的“456”没有应用样式。
.text#输出结果是u'',仍然是连续的。
7. 设置字体。 当然,某些单词不需要通过设置样式来设置,也可以直接设置。
p = 文档。('')
r = p.('123')
r.font.bold =True#Bold
r.字体。 =True#倾斜等...
8.表操作。 表也是一种常用的对象类型。
#新建一个2x3的表格,样式不用写
table=doc.(rows=2,cols=3,style=None)#可以通过table的rows sum得到这个表的行数和列数
(表.行)
(table.)#遍历表
对于 table.rows 中的行:
row.cells[0].text ='1'#
print row.cells[0].text#新行或新列
桌子。()
桌子。()
提醒:请联系我时一定说明是从星空网上看到的!