最新要闻
- 环球即时看!宏碁发布eKinekt BD 3酷骑桌:工作之余还能骑动感单车
- 世界热讯:1.6亿美元是罚定了!印度法庭驳回谷歌推翻垄断案的请求
- 当前热点-17万元起真香!奇瑞最高颜值SUV星途瑶光盲订量已达6012台
- 环球热点评!2022广州车展压轴登场 这八款新能源新车千万不要错过
- 今头条!全新NT架构加持!腾讯QQ原生上架麒麟应用商店
- 天天微资讯!国产可乐为什么都在陆续消失?专家道出原因
- 哄娃神器 一公司推出可自动驾驶婴儿车:售价约2.2万人民币
- 画风有《魔兽》那味了:国产多端MMO《塔瑞斯世界》PV首曝
- 【环球热闻】男子一口气网购20个26元扫地机器人:场面壮观实测失望
- 男子为研究显卡到网吧一口气拿7块:网友调侃要都是4090赚大
- 实时:C罗说世界杯唯一赢阿根廷的是沙特 这里是新挑战 不是养老
- 配大哥H9同款2.0T 国产豪华轿跑红旗H6官图发布:罕见中置双排气
- 全球热头条丨微软再次挑战谷歌:Bing或将推出ChatGPT AI版本
- 【全球时快讯】一加首次推出100W双口充电器:支持65W PD快充 首发229元
- 世界观点:华系车崛起!欧洲每10台新能源汽车 就有1台来自中国
- 天天看热讯:有史以来第一个6GHz CPU i9-13900KS现身中国!要卖6500元?
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
全球快播:python中可以处理word文档的模块:docx模块
一.docx模块
Python可以利用python-docx模块处理word文档,处理方式是面向对象的。也就是说python-docx模块会把word文档,文档中的段落、文本、字体等都看做对象,对对象进行处理就是对word文档的内容处理。
二.相关概念
如果需要读取word文档中的文字(一般来说,程序也只需要认识word文档中的文字信息),需要先了解python-docx模块的几个概念。
- Document对象,表示一个word文档。
- Paragraph对象,表示word文档中的一个段落
- Paragraph对象的text属性,表示段落中的文本内容。
三.模块的安装和导入
需要注意,python-docx模块安装需要在cmd命令行中输入pip install python-docx,如下图表示安装成功(最后那句英文Successfully installed,成功地安装完成)
(资料图片仅供参考)
注意在导入模块时,用的是import docx。
也真是奇了怪了,怎么安装和导入模块时,很多都不用一个名字,看来是很有必要出一个python版本的模块管理程序python-maven了,本段纯属PS。
四.读取word文本
在了解了上面的信息之后,就很简单了,下面先创建一个D:\temp\word.docx文件,并在其中输入如下内容。
import docxfile=docx.Document(r"F:\python从入门到放弃\7\2\wenjian.docx")print("段落:"+str(len(file.paragraphs)))# # for para in file.paragraphs:# print(para.text) for i in range(len(file.paragraphs)): print("第"+str(i)+"段的内容是:"+file.paragraphs[i].text)
import sysfrom docx import Documentfrom docx.shared import Inchesdef main():# reload(sys)# sys.setdefaultencoding("utf-8") # 创建文档对象 document = Document() # 设置文档标题,中文要用unicode字符串 document.add_heading(u"我的一个新文档",0) # 往文档中添加段落 p = document.add_paragraph("This is a paragraph having some ") p.add_run("bold ").bold = True p.add_run("and some ") p.add_run("italic.").italic = True # 添加一级标题 document.add_heading(u"一级标题, level = 1",level = 1) document.add_paragraph("Intense quote",style = "IntenseQuote") # 添加无序列表 document.add_paragraph("first item in unordered list",style = "ListBullet") # 添加有序列表 document.add_paragraph("first item in ordered list",style = "ListNumber") document.add_paragraph("second item in ordered list",style = "ListNumber") document.add_paragraph("third item in ordered list",style = "ListNumber") # 添加图片,并指定宽度 document.add_picture("cat.png",width = Inches(2.25)) # 添加表格: 1行3列 table = document.add_table(rows = 1,cols = 3) # 获取第一行的单元格列表对象 hdr_cells = table.rows[0].cells # 为每一个单元格赋值 # 注:值都要为字符串类型 hdr_cells[0].text = "Name" hdr_cells[1].text = "Age" hdr_cells[2].text = "Tel" # 为表格添加一行 new_cells = table.add_row().cells new_cells[0].text = "Tom" new_cells[1].text = "19" new_cells[2].text = "12345678" # 添加分页符 document.add_page_break() # 往新的一页中添加段落 p = document.add_paragraph("This is a paragraph in new page.") # 保存文档 document.save("demo1.doc")if __name__ == "__main__": main()
读取表格:
import docxdoc = docx.Document("wenjian.docx")for table in doc.tables: # 遍历所有表格 print("----table------") for row in table.rows: # 遍历表格的所有行 # row_str = "\t".join([cell.text for cell in row.cells]) # 一行数据 # print row_str for cell in row.cells: print(cell.text, "\t",) print() #换行
首先是用docx.Document打开对应的文件目录。
docx文件的结构比较复杂,分为三层,
- Docment对象表示整个文档;
- Docment包含了Paragraph对象的列表,Paragraph对象用来表示文档中的段落;
- 一个Paragraph对象包含Run对象的列表。
因此p.text会打印出整个的文本文档。而用doc.tables来遍历所有的表格。并且对每个表格通过遍历行,列的方式来得到所有的内容。
但是在运行结果中并没有找到我们插入的文件对象和图片,text.txt文档。这部分该如何解析呢。首先我们需要先来认识下docx文档的格式组成:
docx是Microsoft Office2007之后版本使用的,用新的基于XML的压缩文件格式取代了其目前专有的默认文件格式,在传统的文件名扩展名后面添加了字母“x”(即“.docx”取代“.doc”、“.xlsx”取代“.xls”、“.pptx”取代“.ppt”)。
docx格式的文件本质上是一个ZIP文件。将一个docx文件的后缀改为ZIP后是可以用解压工具打开或是解压的。事实上,Word2007的基本文件就是ZIP格式的,他可以算作是docx文件的容器。
docx 格式文件的主要内容是保存为XML格式的,但文件并非直接保存于磁盘。它是保存在一个ZIP文件中,然后取扩展名为docx。将.docx 格式的文件后缀改为ZIP后解压, 可以看到解压出来的文件夹中有word这样一个文件夹,它包含了Word文档的大部分内容。而其中的document.xml文件则包含了文档的主要文本内容
从上面的文档我们可以了解到docx文档实际上是由XML文档打包组成的。那么我们要得到其中所有的部分,可以用ZIP解压的方式来得到所有的部件。
我们先试下看是否可以
1 将docx文档改成ZIP的后缀
2 解压文件
解压之后得到如下几个文件点开word文件夹:有如下的文件夹。document.xml就是描述文本对象的文件其中embeddings文件中就是我们插入的文本对象text.txt. 是一个bin文件Media文件中就是存储的图片:我们通过手动的方式将插入的文本以及图片解析出来,那么通过代码也是同样可以解析的。代码如下。
os.chdir(r"E:\py_prj") #首先改变目录到文件的目录os.rename("test.docx","test.ZIP") # 重命名为zip文件f=zipfile.ZipFile("test.zip","r") #进行解压for file in f.namelist(): f.extract(file)file=open(r"E:\py_prj\word\embeddings\oleObject1.bin","rb").read() #进入文件路径,读取二进制文件。for f in file: print (f)
通过上面的方式,就可以将docx中插入的文件以及图片全部解析出来。
具体docx的写的方式可以参考官方文档的介绍
关键词: 一般来说
-
全球快播:python中可以处理word文档的模块:docx模块
一 docx模块Python可以利用python-docx模块处理word文档,处理方式是面向对象的。也就是说python-docx...
来源: 全球快播:python中可以处理word文档的模块:docx模块
环球即时看!宏碁发布eKinekt BD 3酷骑桌:工作之余还能骑动感单车
世界热讯:1.6亿美元是罚定了!印度法庭驳回谷歌推翻垄断案的请求
当前热点-17万元起真香!奇瑞最高颜值SUV星途瑶光盲订量已达6012台
环球热点评!2022广州车展压轴登场 这八款新能源新车千万不要错过
今头条!全新NT架构加持!腾讯QQ原生上架麒麟应用商店
天天微资讯!国产可乐为什么都在陆续消失?专家道出原因
哄娃神器 一公司推出可自动驾驶婴儿车:售价约2.2万人民币
画风有《魔兽》那味了:国产多端MMO《塔瑞斯世界》PV首曝
【环球热闻】男子一口气网购20个26元扫地机器人:场面壮观实测失望
男子为研究显卡到网吧一口气拿7块:网友调侃要都是4090赚大
环球微资讯!Float value issue in GLSL
【环球热闻】事件总线 + 函数计算构建云上最佳事件驱动架构应用
实时:C罗说世界杯唯一赢阿根廷的是沙特 这里是新挑战 不是养老
配大哥H9同款2.0T 国产豪华轿跑红旗H6官图发布:罕见中置双排气
全球热头条丨微软再次挑战谷歌:Bing或将推出ChatGPT AI版本
【全球时快讯】一加首次推出100W双口充电器:支持65W PD快充 首发229元
世界观点:华系车崛起!欧洲每10台新能源汽车 就有1台来自中国
MySQL——索引
全球关注:易基因|METTL3 通过调节m6A 修饰抑制口腔鳞状细胞癌安罗替尼敏感性 | 肿瘤研究
环球今头条!苹果app怎么上架
天天看热讯:有史以来第一个6GHz CPU i9-13900KS现身中国!要卖6500元?
【当前热闻】3999元用4年依然流畅!一加11开启预售
热头条丨奥迪A6L提车三天出问题 4、5挡异响!4S店同意退车
热文:河南一女生118元买网红甜品巴斯克蛋糕 收到后吐槽像烧饼:生日毁了
环球动态:60多岁男子高速逆行撞废比亚迪新车 刚提一个月心疼不已
JS逆向实战10——某集团RSA长加密
WINDOWS文本编辑器丨EmEditor功能简介
天天最资讯丨中国首批电子后视镜来了 吉利旗下路特斯首搭
微头条丨1000元大额券:骆驼户外徒步鞋179元起、夹棉冲锋衣199元起
长安马自达旗舰SUV大促:优惠7万多、还送5万公里延保
杨迪在淘宝真的火 阳敌手机壳搜索量暴涨2300倍
一加11搭载三星2K柔性微曲屏:安卓首发随帧变动技术
【K哥爬虫普法】大数据风控第一案:从魔蝎科技案件判决,看爬虫技术刑事边界
简讯:通过持续交付提升发布效率
三款免费强大的SSH工具食用指南
焦点速递!Rpmbuild原码打包成rpm包
微速讯:App在苹果上架难吗
快讯:00后员工吐槽老板创意土被约谈 网友:老一辈审美观需升级
苹果妥协了!iOS第三方商店有望上线:欧洲iPhone专享
全球新动态:女子关窗围炉煮茶3小时致一氧化碳中毒:医生科普紧急救助办法
天天即时看!北京2人坠冰身亡 专家科普发现冰面破裂该如何自救
今日快讯:IO、NIO、BIO傻傻分不清吗,让我对象告诉你~~
游客误把燃香扔进400年文物里:网友心痛!科普雍和宫须弥山
专家称《原神》唯美:展现出我国的高现代化水准
今头条!尚硅谷Vue2.0+3.0的笔记资料(cli开始)
天天消息!docx替换word属性打勾
【天天播资讯】贾跃亭的法拉第未来重返2023年CES FF 91完成一系列升级
【速看料】二手车商亏哭!日系车保值“神话”破灭 国人无视省油、小毛病少爱上新能源
全球今热点:曾称污染比燃油车更大!丰田章男再度质疑电动车
郑州大气!明日10点起发放年货消费券:全国用户都能用
每日速读!全球首款!外星人推出24.5寸500Hz IPS电竞显示器:0.5ms急速响应
浅析 Dubbo 3.0 中接口级地址推送性能的优化
环球快报:行走的救护员!凯迪拉克车主把AED放车上:还允许破窗使用
焦点!特斯拉自动辅助驾驶追尾事故车辆 前车车主当场被吓懵
Win11 22H2又出新Bug:文件管理器随机“突然出现”
【独家焦点】动物也懂协同合作 两只雪豹一起偷鸡:一只踩点、一只放哨
天天播报:雷军:相信旗舰机会全部标配无线充电
环球快资讯:实战Flink sql语法改造
快讯:上映仅半个月 《阿凡达2》拿下2022全球票房年度冠军:超越《壮志凌云2》
当前通讯!现货:抗原检测试剂盒3.9元/份(顺丰包邮)
NVIDIA发布RTX视频超分辨率技术:看视频也有“DLSS”了
世界新资讯:时隔15年 Qi2无线充电标准官宣:基于苹果MagSafe打造 磁吸将降临安卓
面试官:Docker 有几种网络模式?5 年工作经验都表示答不上来。。
梦想云图Node.JS服务 (网页CAD,在线CAD )
每日看点!upload-lab靶场
世界讯息:电动车充电自燃一家4口不幸遇难 现场惨烈:网友感慨为何在家充电?
百事通!新势力年交付突破百万背后 谁得意 谁失意?
环球新消息丨安卓阵营绝无仅有!一加11屏幕体验最接近苹果iPhone ProMotion
全球焦点!售价或低于20万 特斯全新入门新车效果图曝光:颜值挺高
焦点要闻:祖传1200万像素要终结!曝苹果iPhone 15将配备4800万像素
滑雪不会刹车女生一路靠吼下坡 网友调侃练河东狮吼:医生科普受伤有多严重
环球新动态:一加11今天发!起步就是12GB+256GB 拒绝凑数卡价位
PC主机消失不可避免:备胎随时上位
快看点丨华硕ROG发布首款四频Wi-Fi 7八爪鱼游戏路由:25Gbps、三万兆网口
天天实时:太突然!国产饮料巨头宣布破产:一代名饮国产可乐退场网友唏嘘
焦点播报:增程车是必然被淘汰的技术 谁买坑谁?理想、华为反驳
世界通讯!Spring IOC官方文档学习笔记(六)之自定义bean的特性
数据结构作业(三):直接插入排序 和 归并排序
当前信息:就因为一张朋友圈截图 全国的蒙脱石散都卖光了
只需钻入地下几千米 就有无穷能源!为啥没人干呢?
3000万用户数据泄露:这一次 我们的推荐翻车了
环球热消息:奇闻:为了保护疫苗 200多年前 竟然用孤儿活体运输
全球看热讯:VR:新一代年轻人的鸽王终结者
【前端调试】- 更好的调试方式 VSCode Debugger
世界观点:Python转义字符理解
全球微头条丨大疆官宣手持稳定器新品:RS 3 mini来了
消息!银白装甲!华硕ROG STRIX B760-G GAMING WIFI D4小吹雪主板图赏
微星发布全新B760系列主板:共四款 ITX刀锋小板来了
要闻速递:情侣在酒店电视机拆出针孔摄像头 已发出十几个TB的视频
[Computer Networks]一个http请求的完成的全过程
热消息:不愧最强AM5主板!技嘉X670E AORUS XTREME游戏测试:独门绝技降低内存延迟、提升带宽
Typora-博客园
头条焦点:使用SIPp进行压力测试
观焦点:【插入排序】详细讲解
每日热议!长城山海炮劲敌:国产福特中型皮卡Ranger谍照曝光
天天亮点!情何以堪:男性美甲风暴正席卷全球
今日热搜:荣耀声纹新专利公布:戴口罩依旧能让设备“听懂”
【世界播资讯】三星新款Flex Hybrid OLED屏幕曝光:折叠滑动二合一
【环球速看料】首架国产自主宽带卫星空地互联飞机试飞成功:下载200Mbps