在编程世界里,Python已经是名副其实的网红了。曾经一个学汉语言的研究生,问我怎么学Python,因为他们课程论文里需要用到文本分析,用Python来跑数据。我和他说,你看两天语法,就可以上手开干,不会的再查资料。后来这位同学半个月就用Python把论文数据搞好了。 所以Python最大优势在于容易学,门槛比Java、C低非常多,给非程序员群体提供了用代码干活的可能性。当然Python能成为大众编程工具,不光光是因为易学,还因为Python有成千上万的工具包,遍布各行各业。 举10几个大众办公常见的例子,Python都能高效处理。1、Python处理Excel数据 可以使用pandas、xlwings、openpyxl等包来对Excel进行增删改查、格式调整等操作,甚至可以使用Python函数来对excel数据进行分析。 读取excel表格importxlwingsasxwwbxw。Book()thiswillcreateanewworkbookwbxw。Book(FileName。xlsx)connecttoafilethatisopenorinthecurrentworkingdirectorywbxw。Book(rC:pathofile。xlsx)onWindows:userawstringstoescapebackslashes 将matplotlib绘图写入excel表格importmatplotlib。pyplotaspltimportxlwingsasxwfigplt。figure()plt。plot(〔1,2,3〕)sheetxw。Book()。sheets〔0〕sheet。pictures。add(fig,nameMyPlot,updateTrue) 2、Python处理PDF文本 PDF几乎是最常见的文本格式,很多人有各种处理PDF的需求,比如制作PDF、获取文本、获取图片、获取表格等。Python中有PyPDF、pdfplumber、ReportLab、PyMuPDF等包可以轻松实现这些需求。 提取PDF文字importPyPDF2pdfFileopen(example。pdf,rb)pdfReaderPyPDF2。PdfFileReader(pdfFile)print(pdfReader。numPages)pagepdfReader。getPage(0)print(page。extractText())pdfFile。close() 提取PDF表格提取pdf表格importpdfplumberwithpdfplumber。open(example。pdf)aspdf:page01pdf。pages〔0〕指定页码table1page01。extracttable()提取单个表格table2page01。extracttables()提取多个表格print(table1)3、Python处理Email 在Python中可以使用smtplib配合email库,来实现邮件的自动化传输,非常方便。importsmtplibimportemail负责将多个对象集合起来fromemail。mime。multipartimportMIMEMultipartfromemail。headerimportHeaderSMTP服务器,这里使用163邮箱mailhostsmtp。163。com发件人邮箱mailsender163。com邮箱授权码,注意这里不是邮箱密码,如何获取邮箱授权码,请看本文最后教程maillicense收件人邮箱,可以为多个收件人mailreceivers〔qq。com,outlook。com〕mmMIMEMultipart(related)邮件正文内容bodycontent你好,这是一个测试邮件!构造文本,参数1:正文内容,参数2:文本格式,参数3:编码方式messagetextMIMEText(bodycontent,plain,utf8)向MIMEMultipart对象中添加文本对象mm。attach(messagetext)创建SMTP对象stpsmtplib。SMTP()设置发件人邮箱的域名和端口,端口地址为25stp。connect(mailhost,25)setdebuglevel(1)可以打印出和SMTP服务器交互的所有信息stp。setdebuglevel(1)登录邮箱,传递参数1:邮箱地址,参数2:邮箱授权码stp。login(mailsender,maillicense)发送邮件,传递参数1:发件人邮箱地址,参数2:收件人邮箱地址,参数3:把邮件内容格式改为strstp。sendmail(mailsender,mailreceivers,mm。asstring())print(邮件发送成功)关闭SMTP对象stp。quit()4、Python处理数据库 数据库是我们常用的办公应用,Python中有各种数据库驱动接口包,支持对数据库的增删改查、运维管理工作。比如说pymysql包对应MySQL、psycopg2包对应PostgreSQL、pymssql包对应sqlserver、cxoracle包对应Oracle、PyMongo包对应MongoDB等等。 对MySQL的连接查询importpymysql打开数据库连接dbpymysql。connect(hostlocalhost,usertestuser,passwordtest123,databaseTESTDB)使用cursor()方法创建一个游标对象cursorcursordb。cursor()使用execute()方法执行SQL查询cursor。execute(SELECTVERSION())使用fetchone()方法获取单条数据。datacursor。fetchone()print(Databaseversion:sdata)关闭数据库连接db。close()5、Python处理批量文件 对很多办公场景来说,批量处理文件一直是个脏活累活,Python可以帮你脱离苦海。Python中有很多处理系统文件的包,比如sys、os、shutil、glob、path。py等等。 批量删除不同文件夹下的同名文件夹importos,shutilimportsysimportnumpyasnpdefarrangefile(dirpath0):fordirpath,dirnames,filenamesinos。walk(dirpath0):ifmyresultindirpath:print(dirpath)shutil。rmtree(dirpath) 批量修改文件后缀名importosdeffilerename():pathinput(请输入你需要修改的目录(格式如F:test):)oldsuffixinput(请输入你需要修改的后缀(需要加点。):)newsuffixinput(请输入你要改成的后缀(需要加点。):)filelistos。listdir(path)forfileinfilelist:olddiros。path。join(path,file)print(当前文件:,file)ifos。path。isdir(olddir):continueifoldsuffix!os。path。splitext(file)〔1〕:continuefilenameos。path。splitext(file)〔0〕newdiros。path。join(path,filenamenewsuffix)os。rename(olddir,newdir)ifnamemain:filerename()6、Python控制鼠标 这是很多人的需求,实现对鼠标的自动控制,去做一些流水线的工作,比如软件测试。 Python有个pyautogui库可以任意地去控制你的鼠标。 控制鼠标左击右击双击函数以及测试源码获取鼠标位置importpyautoguiaspgtry:whileTrue:x,ypg。position()print(str(x)str(y))输出鼠标位置if1746x1800and2y33:pg。click()左键单击if1200x1270and600y620:pg。click(buttonright)右键单击if1646x1700and2y33:pg。doubleClick()左键双击exceptKeyboardInterrupt:print()7、Python控制键盘 同样的,Python也可以通过pyautogui控制键盘。 键盘写入importpyautoguitypewrite()无法输入中文内容,中英文混合的只能输入英文interval设置文本输入速度,默认值为0pyautogui。typewrite(你好,world!,interval0。5)8、Python压缩文件 压缩文件是办公中常见的操作,一般压缩会使用压缩软件,需要手动操作。 Python中有很多包支持文件压缩,可以让你自动化压缩或者解压缩本地文件,或者将内存中的分析结果进行打包。比如zipfile、zlib、tarfile等可以实现对。zip、。rar、。7z等压缩文件格式的操作。 压缩文件importzipfiletry:withzipfile。ZipFile(c:test。zip,modew)asf:f。write(c:test。txt)写入压缩文件,会把压缩文件中的原有覆盖exceptExceptionase:print(异常对象的类型是:stype(e))print(异常对象的内容是:se)finally:f。close() 解压文件importzipfiletry:withzipfile。ZipFile(c:test。zip,modea)asf:f。extractall(c:,pwdbroot)将文件解压到指定目录,解压密码为rootexceptExceptionase:print(异常对象的类型是:stype(e))print(异常对象的内容是:se)finally:f。close()9、Python爬取网络数据 python爬虫应该是最受欢迎的功能,也是广大Python爱好者们入坑的主要的原因。 Python中有非常多的包支持爬虫,而爬虫包又分为抓取、解析两种。 比如说requests、urllib这种是网络数据请求工具,也就是抓取包;xpath、re、bs4这种会对抓取下来的网页内容进行解析,称为解析包。 爬取百度首页图片,并保存到本地导入urlopenfromurllib。requestimporturlopen导入BeautifulSoupfrombs4importBeautifulSoupasbf导入urlretrieve函数,用于下载图片fromurllib。requestimporturlretrieve请求获取HTMLhtmlurlopen(http:www。baidu。com)用BeautifulSoup解析htmlobjbf(html。read(),html。parser)从标签head、title里提取标题titleobj。head。title只提取logo图片的信息logopicinfoobj。findall(img,classindexlogosrc)提取logo图片的链接logourlhttps:logopicinfo〔0〕〔src〕使用urlretrieve下载图片urlretrieve(logourl,logo。png)10、Python处理图片图表 图片处理、图表可视化涉及到图像处理,这也是Python的强项,现在诸如图像识别、计算机视觉等前沿领域也都会用到Python。 在Python中处理图像的包有scikitImage、PIL、OpenCV等,处理图表的包有matplotlib、plotly、seaborn等。 对图片进行黑白化处理fromPILimportImagefromPILimportImageEnhanceimgmainImage。open(uE:login1。png)imgmainimgmain。convert(L)threshold1138table1〔〕foriinrange(256):ifithreshold1:table1。append(0)else:table1。append(1)imgmainimgmain。point(table1,1)imgmain。save(uE:login3。png) 生成统计图表importnumpyasnpimportmatplotlib。pyplotaspltN5menMeans(20,35,30,35,27)womenMeans(25,32,34,20,25)menStd(2,3,4,1,2)womenStd(3,5,2,3,3)indnp。arange(N)thexlocationsforthegroupswidth0。35thewidthofthebars:canalsobelen(x)sequencep1plt。bar(ind,menMeans,width,yerrmenStd)p2plt。bar(ind,womenMeans,width,bottommenMeans,yerrwomenStd)plt。ylabel(Scores)plt。title(Scoresbygroupandgender)plt。xticks(ind,(G1,G2,G3,G4,G5))plt。yticks(np。arange(0,81,10))plt。legend((p1〔0〕,p2〔0〕),(Men,Women))plt。show()小结 总之Python会成为大众化的编程语言,帮助到更多需要的人。 如果小伙伴们想要所有算法脚本,可以在后台回复【c】,领取打包文件。