前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3000字,零基础如何快速入门Python自动化办公?

3000字,零基础如何快速入门Python自动化办公?

作者头像
快学Python
发布2022-11-28 14:37:14
5090
发布2022-11-28 14:37:14
举报
文章被收录于专栏:快学Python快学Python

人生苦短,快学Python!

今天分享一位零基础读者朋友的真实学习心得,希望能帮到大家快速入门Python自动化办公!——本文作者:浩子

本文开头,再一次感谢《快学Python:自动化办公轻松实战(以下简称“《快学Python》”)的2位作者朱小五和黄伟老师享以及耐心指导,才能让我得以真正用好Python这一把利器,灵活高效解决工作上的实际问题!

我们也希望更多的读者能学通学透本书的各个案例,并且举一反三,灵活将所学知识运用到更多的工作场景中,从繁琐的复制粘贴等复杂机械工作中解放出来,得以集中精力专注研究更深层次的问题以及课题,取得更加丰硕的工作成果!

一、学习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程序,方便其他同事使用,可参阅P370-P374的相关内容。

五、本次学习总结

平心而论,本次分享的学习成果相对浅显简单,但“麻雀虽小,五脏俱全”,实现了从实际工作需求出发、分析需求、编写核心代码、增加图形界面、生成可执行程序的基本流程。

职场人学习Python以及其他数据分析语句工具,应紧紧围绕自己工作实际,将日常各种具体而繁琐的工作流程,努力提炼成“某项工作需要实现什么功能-〉实现这项功能需要获取什么数据-〉如何获取相应数据-〉如何实现数据与数据之间、数据与文件之间的互联互通、无缝连接”的抽象化思路;

对书中案例的代码(笔者比较喜欢先直接学习每一章的“案例”以及“实战项目”部分,看不懂就再回过头来看对应代码的“语法”解释或者百度搜索),一要坚持亲自手敲几遍(单纯眼看代码与亲自手打代码是完全不同的境界),亲自运行,才能体会到相应的代码可以产生什么样的效果,才能知道该如何“避坑”(如本次分享的图8,更加可以体会到Python这种打多打少一个空格都会完全不一样的语言,有不少新手容易踩的“坑”);

二是要坚持举一反三,对书上代码不要局限于照抄照搬(但“抄作业”也是第一个必不可少的阶段!),更加要多思考如何让代码实现更多一点的功能、如何完全实现实际工作所需要的功能(如本次分享的图9、图11相关代码),在此基础之上大胆编写代码,出了错误提示也不要怕,慢慢查百度、查书上解释,往往很容易得到解决;在实际学习中,“出错-〉纠错-〉提高”往往是实现快速进步的捷径。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 快学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、学习Python语言的动机
  • 二、需求提出:
  • 三、实现功能
  • 四、优化功能
  • 五、本次学习总结
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档