python处理doc和docx
2021/12/1 11:36:34
本文主要是介绍python处理doc和docx,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
https://python-docx.readthedocs.io/en/latest/index.html
https://blog.csdn.net/smile_to_the_world/article/details/105090233
https://blog.csdn.net/qq_22521211/article/details/80278371
https://www.cnblogs.com/TensorSense/p/7413297.html
从网上找到很多类似的文章,代码都差不多,使用之后发现不好用,总是报错。偶然间看到某位大神的代码,是可以用的,也是我唯一找到的可以用的把doc转化为docx的代码:
# encoding=utf-8 from win32com import client as wc w = wc.gencache.EnsureDispatch('kwps.application') doc = w.Documents.Open(r"E:\Python\project\pro1\lala.doc") doc.SaveAs2(r"E:\Python\project\pro1\fafa.docx", 12)
注意:
-
需要用到win32com这个包,不是Python内建的,需要通过python -m pip install pypiwin32安装。
-
要用gencache.EnsureDispatch这个函数才行,网上其他大神用的方法不行。另外,如果你的电脑只安装了WPS,函数参数就得是“kwps.application”,如果有Office,参数就不是这个了。
-
Open方法内的文件路径得用绝对路径,用相对路径的话我反正报错。
-
另存为不用SaveAs,要用SaveAs2,参数是绝对路径。
-
SaveAs2的第二个参数是12,表示保存为docx格式,我之前参考别的大神的代码,用的是16,虽然看起来保存的确实是docx,但是当我通过Python-docx读取这个文件的时候就出错了,后来通过某位大神的评论才知道要用12,切记。
最近想统计word文档中的一些信息,人工统计的话。。。三天三夜吧
python 不愧是万能语言,发现有一个包叫做 docx,非常好用,具体查看官方文档:https://python-docx.readthedocs.io/en/latest/index.html
(v0.8.6)
还有一个是 win32com 包,这个包安装步骤如下:
http://jingyan.baidu.com/article/d3b74d64c853081f77e60929.html
安装好 win32com之后安装 docx包:
pip install python-docx import docx from win32com import client as wc import matplotlib.pyplot as plt from collections import Counter import os # 首先将doc转换成docx word = wc.Dispatch("Word.Application") # 找到word路径 + 文件名 ,即可打开文件 full_path = 'C:\\Users\\ASUS\\Desktop\\test.docx' doc = word.Documents.Open(full_path) # 使用参数16表示将doc转换成docx,保存成docx后才能 读文件 doc.SaveAs(r"D:\\test2.docx",16) doc.Close() word.Quit() # 读取word内容 # 这里是以段落为单位的,下面用一个for 遍历所有段落 doc = docx.Document("D:\\test2.docx") parag_num = 0 for para in doc.paragraphs : print(para.text) parag += 1 print ('This document has ', parag, ' paragraphs')
将doc转为docx:
from win32com import client as wc word = wc.Dispatch("Word.Application") doc = word.Documents.Open(路径+名称.doc) doc.SaveAs(路径+名称.docx, 12) 12为docx doc.Close() word.Quit()
读取段落:
import docx docStr = Document(docName) 打开文档 for paragraph in docStr.paragraphs: parStr = paragraph.text --》paragraph.style.name == 'Heading 1' 一级标题 --》paragraph.paragraph_format.alignment == 1 居中显示 --》paragraph.style.next_paragraph_style.paragraph_format.alignment == 1 下一段居中显示 --》paragraph.style.font.color
读取表格:
numTables = docStr.tables for table in numTables: #行列个数 row_count = len(table.rows) col_count = len(table.columns) for i in range(row_count): row = table.rows[i].cells i行j列内容:row[j].text 或者: row_count = len(table.rows) col_count = len(table.columns) for i in range(row_count): for j in range(col_count): print(table.cell(i,j).text)
这篇关于python处理doc和docx的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享