我们也希望更多的读者能学通学透本书的各个案例,并且举一反三,灵活将所学知识运用到更多的工作场景中,从繁琐的复制粘贴等复杂机械工作中解放出来,得以集中精力专注研究更深层次的问题以及课题,取得更加丰硕的工作成果!
一、学习Python语言的动机
在学习Python语言之前,笔者已经初步了解OFFICE的基本功能(包括WORD邮件合并等基本功能、EXCEL的VLOOKUP等基本函数等)以及SQL语言(SELECT、FROM、WHERE、JOIN的基本用法);
但随着工作内容的日趋复杂以及涉及数据量的日益庞大,笔者逐渐感觉需要更加简洁高效的数据分析处理工具,才能更好更快地解决工作上的难题;
因此,学习Python语言成为了自然而然的选择。受时间限制,职场人士系统全面学习知识并不现实,需要更加贴近工作场景、“干货”程度更高的学习材料;
因此,笔者选择了《快学Python》一书,该书特色之一就是“更多实战案例,助力新手快速上手Python编程”。
二、需求提出:
完成某项工作,需要实现什么功能
笔者每月都要对集团辖内30多家子公司编写经营情况报告,报告开头都要编写基本情况,如图1(相关内容已经进行简化及脱敏,但不影响实际需求分析):
图1:日常工作经常需要编写报告的基本样式
以往要编写上述部分内容,主要是从EXCEL报表中手工复制数据到WORD报告;后来采取WORD的邮件合并功能,但每一次编写报告都要执行一次,而且由于邮件合并结果在同一个WORD文档里,操作执行结束后仍然需要手工拆分成多个文档;实际非常繁琐复杂。
图2:WORD环境下的邮件合并操作
事实上,笔者的上述工作场景,要实现的功能就是:“建立数据‘仓库’(截止时点、开始时点、子公司名称、截止时点以及开始时点经营收入数据)-〉数据从‘仓库’中‘出货’-〉‘ 移植’到报告模版-〉每一组数据生成一个独立的文件”。
以笔者工作数据为例,C:\Users\Administrator\Desktop\EXCEL
数据导入WORD文件夹里有一个1S.docx文件,一个1S.xlsx文件。
图3:原始数据所在文件夹
图4:1S.docx
这就是待“移植”导入数据的报告模版,“****”就是“移植”的目标位置
图5:1S.xlsx,这就是数据“仓库”
三、实现功能
将EXCEL数据“移植”至WORD文档
笔者参照《快学Python》第五章“批量制作缴费通知单”(P207-P210)部分,编写了代码,如图6,原代码详见文末下载。
图6:代码1
(具体代码原理本文不作详解,建议读者详细学习P180-P184“读取Word文档中的文字内容”,深刻理解段落、标题、正文、文字块在Python操作Word过程中的含义,才能准确找到文字块的具体值、位置,再结合P207-P210的具体代码,才能编写准确;此外,读者还应理解P17-P18的索引相关知识,并牢牢紧记:Python的所有东西,都是从“0”开始算起的,具体见书本图1-30)
运行代码1后,新形成2个WORD文件,就是我们所需要的“移植”后的文档,而且数据与“仓库”的一致。
图7:移植后新形成的文件(可对比图3至图5)
【“警告”】 《快学Python》P13已经告诉我们:“与大多数编程语言不同,Python采取相同的缩进来表示代码块。”言下之意,如果我们在编代码过程不注意缩进的规范(在代码开头前面打多或打少一两个空格),很可能代码块的混乱甚至逻辑错误,造成编码失败(这与我们使用WORD文档时长期形成的认识也是矛盾的,毕竟WORD段落缩进的不一致通常只会造成美观上的问题,不会造成我们阅读时的歧义;因此“采取相同的缩进来表示代码块”的要求需要我们在编程实践中不断体会、领悟、掌握)。
图8:你发现这段失败的代码与图6成功的代码有什么不同吗?错在哪里?如何纠正?(建议再深刻学习P13、P62的内容)
四、优化功能
如何实现增加用户图形界面
虽然在前面已经成功编写了代码,但似乎离我们日常看得见摸得着的程序窗口界面还有十万八千里;
所以笔者本着编写程序窗口界面的目的,又学习了第十二章“Python图形界面开发” (P366)部分,并参照编写了一个自定义函数,将上述代码“封装”起来,原代码详见附件代码2之1。注意:本书P366样例的主函数中只有1个参数,但笔者写的主函数需要2个参数(导入WORD文档、EXCEL文档共2个文件),所以写的时候还是有点不踏实的,好在运行时没有差错(注:这时的运行代码只能检查代码有无基本错误问题,因为未导入文档,无法看到结果)。
图9:主函数代码
(与书本代码不同点有以下:一是主函数main有path1、path2共2个参数;二是保存文件名写为"{rows[0]}基本情况表20221007.docx"
,可参考P24“1.5.3 字符串格式化的3种方式”;三是WORD文档保存的最后一句代码应写为doc.save(path_new)”
,不能画蛇添足地照抄书本代码加上index=False
否则又会出错)
图10:画蛇添足照抄书本代码加上index=False的错误结果
在此基础之上,又学习了第十二章的“Python图形界面开发”P366-P367相关内容,编写代码生成可视化的与我们日常认知吻合的程序界面(大多数读者看见的程序,都是有对话框的吧)。注意:本书P367样例的代码只是形成了1个输入框,笔者也是依样画葫芦写多了1段输入框的代码(感兴趣的可对比书本代码以及附件代码2之2),好在运行也出现了期待已久的窗口界面。
图11:图形界面的代码
(与书本代码不同点有以下:一是增加了1个输入框的代码、即多了1组sg.text\sg.Input\sg.FileBrowse,从界面上来看也是多了1个输入框;二是在if values以及main()增加了1个参数。上述增加的代码部分也是在朱小五老师指导下完成的,再次感谢!
图12:作者朱小五老师半夜在读者群秒回答疑
不过图形界面代码还未有与此前的核心代码连接起来,因此这个窗口还只是一个空壳,没有办法达到既定效果的。点击“开始工作!”是不会工作的、也不会生成我们想要的WORD文档的。而错误提示也很清楚:name’main’is not defined(未连接上main函数,因此会提示“未定义”,可参阅P59-P68的Python异常处理)
图13:单纯的图形界面代码是无法运行的
因此,我们要把代码2之1以及代码2之2一并写入一个代码框,测试运行结果是成功的:
图14:运行结果成功
图15:在目标文件夹查看新生成文件,数据与预期一致
如果要将上述得到有用户图形界面的程序代码打包成为一个EXE程序,方便其他同事使用
另外怕大家不会使用,直接给大家准备了写好的,直接下载打开即可使用!
源码放在百度云盘上了需要可以微信扫描下方CSDN官方认证二维码免费领取
最后
如果对Python感兴趣的话,可以试试我的学习方法以及相关的学习资料
点此免费领取:CSDN大礼包:《python学习路线&全套学习资料》免费分享
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
四、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、Python练习题
检查学习结果。
七、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描CSDN官方认证二维码免费领取【保证100%免费】