阿明的崩溃周一:为什么你总在加班?
本文基于 Python 3.9+,阅读时间约 6 分钟。
周一早上 9 点,灾难开始
周一早上,阿明刚泡好咖啡,打开电脑,企业微信就炸了。
老板在群里@他:“阿明,把上周的日志文件整理一下,按日期重命名,汇总到 Excel 里,再做个图表发群里。上午给我。”
阿明心里咯噔一下。
他打开日志文件夹,倒吸一口凉气——50 多个文件,命名乱七八糟:
log_20240115_backup.txt server_log_1.txt temp_log_final.txt log_20240116 (2).txt ..."这谁整理的……"阿明扶额。
他深吸一口气,开始了漫长的手动操作:
第一步:重命名(9:00 - 9:40)
阿明一个个打开文件,看里面的日期,然后右键重命名。有的文件日期在内容里,有的文件名本身就是日期但格式不统一。改了 20 个,眼睛已经花了。
第二步:汇总到 Excel(9:40 - 10:30)
打开 Excel,新建表格,把每个日志里的关键数据(错误数、响应时间、请求量)复制粘贴进去。有的日志格式不一样,有的多了几列,粘贴过来对不齐,得手动调整。
第三步:做图表(10:30 - 11:00)
选中数据,插入图表,调颜色、调字体、调图例位置。老板喜欢蓝色,上次说柱状图太丑要折线图,阿明凭记忆改了半天。
第四步:截图发群(11:00 - 11:10)
截图、保存、发到企业微信群,@老板。
阿明瘫在椅子上,看了眼时间——一上午没了。正经活儿还没开始干。
更惨的是,五分钟后老板回复:“怎么只有 49 个?少了一个 1 月 18 号的。”
阿明:“……”
他重新数了一遍,确实漏了一个。文件名太像,手动改的时候看岔了。
中午食堂,老张登场
中午在食堂,阿明端着餐盘,一脸生无可恋。
老张端着红烧肉走过来,一屁股坐对面:“咋了?周一就这个表情,这周还过不过了?”
阿明把上午的事儿倒了一遍,最后叹气:“张哥,你说我是不是效率太低了?”
老张听完,放下筷子,表情复杂:“你知道你上午那些活儿,加起来多少行代码能搞定吗?”
阿明摇头。
"不到二十行。"老张轻描淡写,"而且代码跑完,不会漏文件,不会看错日期,不会贴错行。
"
阿明筷子停在半空:“……啊?”
"来,我给你算算。"老张掏出手机,打开备忘录。
老张的"自动化思维"课
“阿明,你知道为什么你总在加班吗?”
“因为活儿多?”
"不对。是因为你在用人的方式干机器的活儿。
“来,我问你,你上午做的事,有什么共同点?”
阿明想了想:“都很烦?”
"对,但不够专业。"老张掰手指,"我给你总结三个特征,凡是符合这三个特征的工作,都应该让代码替你干:
特征一:重复性
“你改 50 个文件名,本质上是同一个动作重复 50 次。复制粘贴数据到 Excel,也是同一个动作重复几十次。”
“人重复做一件事,第 5 次就开始走神,第 20 次必然出错。但代码不会烦,代码不会累,代码第 1 次和第 10000 次执行,结果一模一样。”
特征二:规则明确
“你改文件名,规则是什么?‘按日期重命名’。汇总 Excel,规则是什么?‘提取错误数、响应时间、请求量’。”
“这些规则是不是说得清楚、写得明白?只要规则能说清楚,就能写成代码。”
“反过来,如果老板让你’把这些文件整理得好看一点’——这种模糊的需求,代码干不了。但你的活儿,规则都很明确。”
特征三:数据量大
“50 个文件你手动改就崩溃了,那要是 500 个呢?5000 个呢?”
“代码处理 50 个文件和 5000 个文件,时间差不了多少。但人?50 个要一上午,500 个得干到明年。”
老张说完,看着阿明:“你上午的活儿,是不是三条全中?”
阿明点头如捣蒜。
“这就叫自动化思维——看到工作,先想:这事儿是不是重复、规则明确、数据量大?是?那就别用手,用代码。”
Python 的"胶水"超能力
阿明追问:“那张哥,为啥用 Python?我用 Shell 脚本不行吗?”
"行,但 Python 更舒服。"老张夹了块红烧肉,“你知道 Python 有个外号叫**‘胶水语言’**吗?”
“啥意思?”
“就像万能胶,啥都能粘。”
“你想操作文件?Python 内置了pathlib,比 Shell 还好写。”
“你想处理 Excel?pandas+openpyxl,读、写、算、画图,一条龙。”
“你想发邮件、发微信?yagmail、企业微信 Webhook,几行代码搞定。”
“你想定时执行?schedule、APScheduler,设定好时间,到点自己跑。”
“甚至你想调用别人写的 C 语言库、Java 工具,Python 也能粘过来用。”
老张咽下红烧肉,总结道:
“说白了,Python 不是最强的,但是最’百搭’的。你日常工作中遇到的重复性任务,文件、Excel、邮件、网页、PDF,Python 全都能搞定,而且代码写得像人话,三天后你自己还能看懂。”
整个系列,我们要解决什么?
阿明眼睛越来越亮:“张哥,那你能教我吗?”
"教。"老张抽出一张餐巾纸,边写边说,"咱们这个系列,就解决你工作中最常见的几类’重复性折磨’:
| 折磨场景 | Python 解决方案 | 大概多少行代码 |
|---|---|---|
| 几百个文件重命名、分类 | pathlib+os | 10 行 |
| Excel 报表合并、格式调整 | pandas+openpyxl | 20 行 |
| 每天定时发邮件/周报 | yagmail+schedule | 15 行 |
| PDF 合并、拆分、加水印 | PyPDF2 | 10 行 |
| 网页数据抓取 | requests+BeautifulSoup | 20 行 |
| 自动生成图表 | matplotlib/pyecharts | 15 行 |
| 异常自动发微信/钉钉告警 | Webhook | 10 行 |
| 全部串起来,打造个人 RPA | 综合运用 | 50 行 |
阿明看着餐巾纸,倒吸一口凉气:“这些……我之前都是手动干的。”
"所以你在加班啊。"老张把餐巾纸推过去,“从下一篇开始,咱们一个一个解决。”
环境准备:工欲善其事
"不过先别急,你得把’厨房’收拾出来。"老张说。
1. 安装 Python 3.9+
去 python.org 下载最新版,安装时勾选 “Add Python to PATH”。
装完验证:
python--version# Python 3.11.x (你的版本可能不一样,3.9+ 都行)2. 安装 VS Code + Python 插件
“别用记事本写代码,太折磨了。VS Code 免费、好用、插件多。”
推荐插件:
- Python(微软官方,代码高亮、调试、智能提示)
- Pylance(类型检查、代码补全更智能)
- Code Runner(一键运行代码,按
Ctrl+Alt+N)
3. 学会用 pip 装库
“后面用到的第三方库,都用 pip 装。”
# 比如装 pandaspipinstallpandas# 装 openpyxl(操作 Excel)pipinstallopenpyxl# 装 requests(网络请求)pipinstallrequests“建议换个国内镜像,下载快:”
# 临时使用清华镜像pipinstallpandas-ihttps://pypi.tuna.tsinghua.edu.cn/simple# 或者永久设置pip configsetglobal.index-url https://pypi.tuna.tsinghua.edu.cn/simple4. 熟悉 REPL:写一行,看一行
“打开终端,输入python,你就进了一个交互环境。”
>>>print("Hello, 自动化!")Hello,自动化!>>>3+58>>>len("阿明今天不加班")7“写一行,立刻看结果。调试代码、试想法,效率极高。”
一句话总结
吃完饭,阿明感觉周一的阴霾散了一半。
老张擦擦嘴,留下一句话:
"自动化的本质,不是’写很多代码’,而是’识别出不该人干的活儿,然后让代码去干’。你省下来的时间,才是你的。"
阿明握紧那张餐巾纸:“张哥,下一篇什么时候开始?”
"明天。"老张起身,“下一篇教你批量重命名——就从你上午那 50 个日志文件开始。”
下集预告
下一篇,老张带阿明用10 行 Python 代码,把 50 个乱七八糟的日志文件一键重命名、分类归档。阿明终于体会到什么叫"代码跑完,咖啡还没凉"。
记住:凡是重复、规则明确、数据量大的活儿,别用手,用代码。
你工作中有没有那种"每周都要手动做一遍"的重复性工作?是什么?欢迎在评论区吐槽,说不定下一篇就解决它。