2024年1月26日发(作者:)
软件研发与应用SOFTWARE
DEVELOPMENT
&
APPLICATIONPython读取Word表格数据及批量处理的方法闫海忠打闫远2(1.云南大学生态学与地植物学研究所,昆明650504;
2.云南省文化和旅游厅,昆明650200)摘
要:Python目前最新版本为3.9.1,由荷兰人Guido
van
Rossum于1989年发明,如今在编程和行业
应用中几乎无人不知,在大数据和人工智能方面的应用和优势日渐明显。属于面向对象、任务的直译
式计算机程序设计语言。主要优势表现3个方面:(1)语言生态。在编程过程和环境中可以使用多种
外部编程资源,到目前为止Python语言能够提供20余万个第三方库和开源代码,几乎覆盖IT行业的
多个计算领域。(2)简单易用。Python从一开始在语句明了,语法简洁而具有完整的语法逻辑,可以
进行语句级、面向任务和面向过程的程序开发。(3)高效。Python能够编写出直接面对任务的代码,
而且效率极高,同样功能的计算任务,Python能够用较少的代码行,完成复杂程序功能。通过一个操作
磁盘文件的过程,介绍其在Word相关信息提取和处理的方法。关键词:Python语言;Word表格数据;编程框架1任务和数据源填写和处理表格是个常见的任务,没有程序之前大
都是手工方法,但批量的表格及数据处理人工方式就显
得工作量特别大和低效率。#/geoker/article/details/80149463?
from=timelineimport
os
#导入
os模块
import
win32com
#
导入
win32com
模块
因为Python丰富的第三方库内容,通过调用其
Word文件库可以直接读取Office
Word文件内容,用程
from
import
Dispatch,
constants
from
docx
import
Document
#
从
docx
导入
Document
#模块import
re
#
导入
#re
模块
序方法来统计分析并处理成报表。Office
Word文件目
前有两种主要类型,即:.DOX和DOCX两种版本格式,
也在一下的方法通过程序进行了转换,当程序遇到老版
的Word文件(.DOC)会将其转换成较高版本的Word
文件
(.DOCX)
后再进行读取和处理,
体现了程序方法
的功能特点和灵活性。2 Python读取和处理的表格的方法with
open(':'w‘)
as
f:
#
创建统计结果文件
('党支部年度月份党员
实现读取Word表格数据的关键是在程序中导入第
三方控件
Win32com
和
Docx
两个关键模块。
然后分析
数据源文件的表格特征,
分别读取各所需单元的数据并
加以处理统计,最后结果导入到一个更为简便的格式文
件中,全部的Python程序如下所列。实验调试和运行
姓名基础分1'+:'+'基础分2'+:'+'基础分3'+:
'+'基础分4'+','+'基础分5'+
','+'基础分
6'+','+'基础分
7'+','+'基础分
8'+','+'
基础分9'+','+'讲道德有品行1'+','+'讲道德有品行2'+
','+'讲道德有品行3'+','+'讲奉献有作为1'+','+'讲奉献有作为2'+','+'
讲奉献有作为3'+','+'讲奉献有作为4'+','+'讲奉献有
作为
5'+','+'
讲奉献有作为
6'+','+'加分'+','+'—票否决'+','+'总计’+、n')
print('开始工作...')
def
parse_doc(f):"""读取doc,转换为docxdoc
=
(
FileName
=
f)通过在Python
3.9.1
IDE和VS环境下。其特点是处理
和统计速度快,能够把同一目录的所有Word表格数据
文件遍列处理,
方便了许多。Python_:#
!
/usr/bin/env
python#
coding:utf-8#
author:yanshan#
51
.net/article/H
=
()n
=
me(f)
#
获取
doc
文件名
docN
=
l(r'(.+?).',str(n))for
docName
in
docN:#print(PATH)
SreeaeBBHI*>SBSI3EIEIEIEIffiEBBI!IBBBeaeBI3BigBlslBBai3IIBBEISBHI3glBBIIIIIIBSSI3aBIIIglEISa3BEIQISB>E实用第一f智慧密集if
docName[0]
!
=
'~':#word
临时文件不转换
(PATH
+弋'+
docName
+
'.docx',12,
False,
True,
False,
False,
False,
False)
#
转化
#后路径下的文件()def
parse_docx(f):"""打开读取docx,返回党员姓名和年度d
=
Document(f)for
para
in
aphs:#text
=
e('w+s+w+')zb
=
l('党支部:(.*?)年度::)
yr
=
l('年度:(.*?)月份::)
mt
=
l('月份:(.*?)党员姓名:',)
xm
=
l('党员姓名:(.*?)
:)for
z
in
zb:zz
=
zfor
y
in
yr:yy
=
yfor
m
in
mt:mm
=
mfor
x
in
xm:xx
=
xt
=
[0]#name
=
(0,4).textdf1
=
(1,4).text
#读取表格单元数据df2
=
(2,4).textdf3
=
(3,4).textdf4
=
(4,4).textdf5
=
(5,4).textdf6
=
(6,4).textdf7
=
(7,4).textdf8
=
(8,4).textdf9
=
(9,4).textdf10
=
(10,4).textdf11
=
(11,4).textdf12
=
(12,4).textdf13
=
(13,4).textdf14
=
(14,4).textdf15
=
(15,4).textdf16
=
(16,4).textdf17
=
(17,4).textdf18
=
(18,4).textdf19
=
(19,4).textdf20
=
(20,4).textdf
=
(21,4).textwith
open('','a')
as
f:
#
写入结果数据文件
(zz+','+yy+','+mm+','+xx+','+df1+','+df2+',
'+df3+','+df4+','+df5+','+df6+','+df7+','+df8+','
+
df9+','+df10+','+df11
+','+df12+','+df13+','+df14+','
+
df15+','+df16+','+df17+','+df18+','+df19+','+df20+',
'+
df
+'n')if
_name_
==
"_main_":
#主模块获取程序所在目录的
#所有Word文件w
=
ch('ation')#遍历文件WPATH
=
O
#获取当前Word文件所在的
#当前win路径doc_files
=
r(WPATH)for
doc
in
doc_files:if
xt(doc)[1
]
==
'.doc':try:parse_doc(WPATH+''+doc)except
Exception
as
e:print
(e)#WPATH
=
()
#
获取当前
Word
文件所在
#的当前win路径doc_files
=
r(WPATH)for
doc
in
doc_files:if
xt(doc)[1
]
==
'.docx':try:parse_docx(WPATH+''+doc)except
Exception
as
e:print
(e)print
('结果已存入:文件中…')print('
')i
=
input('马上打开杳看?
y
or
Y
')
#提示是否打开杳看
#
结果if
i
==
'y'
or
i
==
'Y':if
(''):
ile('')3
Python使用技巧3.1代码编辑器Python自带的代码编译(IDLE)器体验一般,大量
代码和调试起来不十分方便袁好在市面上有多个与
Python各个版本兼容性良好的Python开发编辑器袁例如:PyCharm:这是一个专门用于Python开发的IDE,
常见的代码补全、智能提示、语法检查,这个软件都支
持袁可以快速创建Django,
Flask等Python
Web框架,
使用起来非常不错。
Sublime
Text:
这是一个轻量级的代码编辑器,
跨平
台,支持几十种编程语言,包括Python,
Java,
C/C++
等,小巧灵活,运行轻快,支持代码高亮、自动补
全、语法提示,插件扩展丰富,是一个很不错的代码
编辑器。VS
Code:
Visual
Studio
Code这是微软开发的一个
跨平台的代码编辑器,界面华丽,支持常见的编程语言
开发,插件拓展丰富,不仅智能补全、语法检查、代码
高亮,还支持git功能,运行流畅,安装相关插件后,
可直接运行Python程序。Atom:这是github专门为程序员开发的一个代码编
辑器,也是款平台的,界面简洁直观,使用起来非常方
便,
自动补全、
代码高亮、
语法提示,
启动运行速度较
快,对于初学者来说,是一个很不错选择。3.2
Python网络编程框架Python
Web
主流框架有
Flask、
Django、
Tornado
等。Flask:
Flask为轻量级Web应用框架,是基于
Werkzeug
WSGI工具箱和Jinja2模板引擎,使用Python
就能快速搭建自己的网络应用程序,如企业网站或个人
博客内容。Django:
Django是以Python编写的高级,MVC风
格的开源库。Django也被称为"完美主义者的最后框
架”。它最初是为新闻网站设计的,并且允许开发人员
编写数据库驱动Web应用程序。它算是一个全能型框
架。它内置了很多模块,能快速解决大量Web难,痛
点问题。Tornado:
Tornado
是传说中性能高的框架。
它支持
异步处理的功能,
这是它的优势。
因为其他框架不具备
该功能。但Tornado也有致命缺点,那就是扩展库资源
比较少。个人认为Tornado简单易用,上手快。3.3
Python程序发布与打包Python可以说是一个描述行的脚本语言,不需要编
译即能被解释器解释执行。它的发布两种主要方式:(1)
.py文件:有的时候,可直接提供源码供用户
使用,因为对于开源项目或者源码没那么重要的,只需
要使用者自行安装Python安装依赖的各种库。(2)
.pyc
文件:
pyc
文件是
Python
解释器可以识别
的二进制码,
故发布后也是跨平台的,
需要使用者安装
相应版本的
Python
和依赖库。
通过使用
pyc
文件发布
应用,可以在一定程度上保证某些机密和算法。软件研发与应用另外,还可利用第三方工具将.py生成一个可执行
文件,这对于需要单独运行程序的用户而言,是最简
单的方式。
如利用
Pyinstaller
工具来打包成为一个
exe
文件,但要注意的是该可执行文件体积较大,执行速
度也会慢些。(1)
Pyinstaller安装方法:在Python命令行中,键
入如下命令:pip
install
pyinstaller(2)
PyInstaller
的使用:
在
Python
命令行中
,
键入
如下命令:pyinstaller
[options]
script
[script噎]
|
specfile
其中
[options]
包括多个选项,
各参数意义和用法
如下:-F
表示生成单独的可执行文件;-D
-onedir创建一个新的磁盘目录存储exe文件
(默认选项)。-w表示去掉控制台窗口,这在需要GUI界面时
有用。-c
-console,
-nowindowed
使
用 控
制
台
,
无
界 面
(默认)。-p
表示自定义需要加载的类路径,
使用情况不多。-i
表示生成的可执行文件的图标文件。例如要编译Python_,其实最简单的用法,
在和Python_word..py源代码同目录下执行命令:pyinstaller
-
F
Python_word..py这个命令成功了,会在当前目录下新增加了两个子
目录:
build
和
dist,
dist
所生成的可执行文件就在其
中,dist目录下包括有执行过程中所需的多个动态库文
件等。4
结语在国内的流行度已经直逼Java,逐渐在众多的行业
应用中流行起来,全球知名的编程语言流行度排行榜
TIOBE的统计显示:Python曾成为2018年度编程语言。Python作为一门高级编程语言,它的诞生虽然很偶
然,但是它得到程序员的喜爱却是必然之路。Python初
学者甚多,但要继续深入下去,有几个概念需要进一步
理解:与C语言不同,C语言编译完就是机器码,机器码
可以直接在处理器上执行。CPU可以直接读取机器码,
而
Python
是解释性脚本语言。
Python
脚本在执行中,
其
SreeaeBBHI*>SBSI3EIEIEIEIffiEBBI!IBBBeaeBI3BigBlslBBai3IIBBEISBHI3glBBIIIIIIBSSI3aBIIIglEISa3BEIQISB>E实用第一f智慧密集解释器会把代码内容读到内存里,通过Python解释器
翻译成字节码。而CPU不能直接读取字节码,需要把
字节码转换成机器码。所以Python对于C来说,就多
[6]
黄宏博.以Python语言作为咼校程序设计课程主语
言的探讨[J].教育艺术,2015:
283.[7]
闫海忠.图解手机定位信息转换为点、线和面的技
了一个字节码转换成机器码的过程,所以相对会慢。
但是人为是无法感知的。另外Python的图形界面相对
弱弱势,在桌面应用和分层数据库应用等方面还需要补
术与方法[J].电脑编程与维护技巧,2019,
2:
65-67.[8]
闫海忠.数据库全文检索引擎的设计与实现[J].
足其短板。Word表格数据处理方法仅是个初步尝试。参考文献电脑编程与维护技巧,
2018,
2:
105-109,
142.[9]
闫海忠,Aleksey
Babchenko.用
Morfik
Fx
编写适合
[1]
嵩天,礼欣,黄天羽.Python
—言程序设计基础
[M]
.
2版.北京:高等教育出版社,2017.于多种设备平台的应用实例
[J]
.
电脑编程与维护
技巧,
2017,
3:
31-34.[10]
闫海忠.用Ozi制作自己的导航地图和实现追踪技
[2]
张莉,金莹,张洁.多样化可扩展的Python教学体
系探索与实践[J].计算机教育,2017,
(8):
18-22.术
[J]
.
电脑编程与维护技巧,
2016,
19:
77-79.[11]
闫海忠.一种深度备份应用程序和数据的方法[J].
⑶张茗芳.动态语言Python探讨与比较[J].企业科
技与发展,2012,
(13)
:
57-60.[4]
沈殊璇,薄亚明.适合于科学计算的脚本语言
电脑编程与维护技巧,
2016,
18:
56-58,
68.[12]
Wing
J
M.
Computational
thinking
[J]
.
Communications
of
the
ACM,
2006,
49
(3)
:
33.
[J]
.
微计算机应用,
2002,
(5)
:
289-291.[5]
狄博,王晓丹.基于Python语言的面向对象程序设
[13]
Masters
K.A
brief
guide
to
understanding
MOOCs
[J]
.
The
Internet
Journal
of
Medical
Education,
2011,计课程教学[J].计算机工程与科学,2014,
(A1):
122-125.(上接第37页)(2):
1.亠
址冬仝企仝企仝企亠
仏亠
3亠 期亠
臬亠
臬亠
央亠 処亠 処亠
址企仝企仝企亠
3亠
血亠
臬亠
期亠 臬亠 臬亠
4*继电器开关也可以配合很多外围设备。保世界范围内的兼容性。除了具有无线和超低功耗特
液位继电器的制造技术比较成熟,在使用时依据具
体情况选择相应的型号即可。4
结语性,STM32WL微控制器还包含嵌入式安全硬件功能,
如128/256位AES硬件加密、PCROP读写保护、采用
椭圆曲线加密引擎的公钥加密。对于水位控制系统的研究与设计应该与时俱进,对
水位控制系统的发展加以总结,提出了一套由4个部分
组成的统一系统模型,这4个部分分别是:核心控制部
分、通信部分、监测部分、其他外围接口。此模型基本
可以说,STM32WL单片机是一款专为物联网设计
的芯片。3.2.2液位继电器监测部分可以使用液位继电器来实现。液位继电器
适用各种水位控制系统的设计,具备很强的指导意义。
是继电器的一种,同样属于电控制设备。液位继电器通
常分为3个端子,其工作原理是利用液体的导电性,在
又面向物联网时代,选择STM32WL单片机作为控制核
心对统一的水位控制模型加以实现,可以被其他的类似
水位发生变化时,
不同的端子没于水中的状态不同,
从
而导电性不同,进而导致继电器电路中三极管的导通或
系统设计参考并借鉴。参考文献[1]
范陈清,张杰,王际朝,万勇,孟俊敏.基于雷达
截至状态发生变化,产生不同的高低电平信号。使用液位继电器是一种间接的水位监测方法,
作为
一种接触式设备,通过在水塔的不同高度安装液位继电
器开关,
在水位变化时触发不同的电信号,
从而可以计
水位计的海浪波高信息提取算法及其精度评价[J].
海洋科学,2014,
38
(06)
:
47-51.[2]
金波,秦燕飞.物联网产业发展及对策[J].宏观
算出相应的水位数值。液位继电器具备价格低廉、耐用
等诸多优点,并且对于各种系统都具备良好的兼容性不
会引起冲突,对于系统的改造、维护、扩展有利。而且
经济管理,2014,
(10)
:
68-69+72.[3]
崔振辉,李华宇.物联网发展现状研究[J].通信
技术,2014,
47
(08)
:
841-846.
本文发布于:2024-01-26 22:07:56,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/1706278076887.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |