news 2026/8/29 4:04:37

用Python写了个脚本,把每天2小时的Excel活儿干没了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用Python写了个脚本,把每天2小时的Excel活儿干没了

这不是教程,是一个普通打工人的生存记录

上周, 同事瞧见我, 在30秒的时间里, 生成了月度销售报表, 便询问我, 是不是使用了什么付费软件。

我打开终端,敲了三行代码:

bash

cd ~/

.py

# 生成完成!文件已保存到:

//.xlsx

同事愣住了:"你还会编程?"

我说不是会编程,是被逼出来的。

为什么选(不是Excel,不是VBA,不是低代码平台)

说实话,我试过很多路子:

在Excel宏/VBA里, 写的时候如同在进行考古那般, 调试的情形恰似去开盲盒那样, 至于跨平台运行是连想都不要去想的事情。

低代码工具:拖拖拉拉配半天,不如直接复制粘贴

付费的自动化软件, 价格高昂, 并且, 每一款软件的运行逻辑均不相同, 学完一款之后, 再去学习另一款, 又需要重新开始学习。

最后选,就一个原因:它是编程界的瑞士军刀。

说的并非是你必须得成为程序员, 然而此门语言自身拥有的特性, 致使这特性专门适宜去做这类“半技术半业务”如此这般的事:

那种语法简单得不像编程语言, 其中的for i in range(10)更是比Excel的=SUM()还好理解 , 这是一种情况。

让人难以想象到的库多, Excel存在着, 网页具备加量版本、邮件存在此物、文件拥有该操作系统版本, 你所需要的基本上都有已准备好现成的那种。

一经编写, 各处运行, Mac、Linux均可运行, 同事若需使用, 发出脚本即可。

我的自动化实战路线(不是系统教程,是踩坑记录)

第一步:环境搭建(跳了好多坑,直接说结论)

别去下载那些"集成环境",官网下原版就行。

我的配置:

# 3.11+(新版本的类型提示太香了)

# VS Code + 插件

说到pip, 必须得用venv虚拟环境, 不然后期会陷入依赖地狱哦。

# 创建项目

mkdir

cd

-m venv venv

venv/bin/ # 用 venv\\

# 装包

pip

第二步:从Excel自动化开始(这个回报最快)

第一个项目:自动合并12个月的销售数据

以往采取的方式是, 将12个Excel文件予以打开, 进行复制粘贴的操作, 对格式加以更改, 开展算汇总的工作, 耗时起码2小时。

做法:

as pd

from Path

# 读取所有月度数据

路径对象Path以字符串形式传入参数'./data', 调用其glob方法, 传入通配符模式'*.xlsx'筛选文件 , 放入files中。

dfs =

pd.(f) for f in files

# 合并、计算、保存

= pd.(dfs)

= .(

'产品', '地区'

).agg({

'销售额': 'sum',

'销量': 'sum'

}).()

关于('年度汇总.xlsx'), 索引为假的情况。

30行代码,5秒出结果。

重心落于具可复用性之上: 下个月之时候, 只需将全新之文件放置到data文件夹那儿, 接着再跑上一次如此之操作即可达成。

第三步:文件系统自动化(这个看似简单,实则最实用)

我的下载文件夹以前是个垃圾堆:

截图、PDF、Excel、安装包混在一起

找文件要翻半天

现在用自动整理:

from Path

= Path('~/')

RULES = {

'.pdf', 其对应的是 '文档/PDF'。

.xlsx格式的文件, 属于文档类别中的Excel类型。

'.png': '图片',

'.jpg': '图片',

在“ .dmg”这里面, 它所对应的是“安装包”。

for file in .():

if file.():

ext = file..lower()

if ext in RULES:

= / RULES

.mkdir(=True, =True)

移动, 将文件转换为字符串形式, 再 将斜杠与文件名拼接转换为字符串形式。

设为定时任务,每天自动跑。下载文件夹永远整整齐齐。

第四步:网页数据抓取(这个是真的省时间)

老板让我每周统计竞品在3个平台的价格。

以手工方式来做: 每个平台都要打开, 之后进行搜索这款产品, 接着记录下该产品的价格, 最后填入表格之中, 每周所需时间为40分钟。

做法:

from bs4

as pd

def 抓取价格(平台, 产品名):

# 每个平台的结构不同,这里简化演示

网址等于, 由“https://”加上那个平台, 再加上“.”, 再加上“com/?q=”, 再加上产品名, 组合而成的字符串。

= {'User - Agent': '以斜杠开头, 后面跟着数字5, 再跟着点, 再跟着零, 省略号部分为其他字符组成的内容\'。

= .get(url, =)

# 找到价格元素(这里要根据实际网页结构调整)

在 soup 里查找, 查找那个标签名为 span , 且属性等于 price 的内容, 以得出查询结果。

将文本中的特定字符(即单引号内的“¥”以及空字符串)转换为浮点数进行处理。

=

“产品A”, “产品B”, “产品C” , 这三个不同的产品 , 各自有着不同的特点呀。

=

data =

for in :

for in :

price = 抓取价格(, )

data.({

'产品': ,

'平台': ,

'价格': price,

'时间': pd..now()

})

df = pd.(data)

读取名为“竞品价格监控.xlsx”的文件, 不设置索引, 输出为格式。

5分钟写完,以后每周跑一次就行。

注意:网页结构经常变,要维护。但总体来说比手动抄快太多了。

第五步:定时任务调度(让脚本自己跑)

库,简单到不像话:

time

from 抓取价格, 发送邮件

def 日常任务():

# 1. 抓取数据

抓取价格()

# 2. 生成报表

生成报表()

# 3. 发送邮件

发送邮件()

print("任务完成")

# 每天早上9点跑

每一天, 在“09 : 00”的时候, 去做日常任务。

while True:

.()

time.sleep(60)

设为开机自启动,真正的"无感自动化"。

我的工具箱里有什么(具体到库和文件结构)

~//

├── venv/ # 虚拟环境

├── /

│ ├── .py # Excel相关

│ ├── .py # 文件整理

│ ├── .py # 网页抓取

│ └── .py # 邮件发送

├── data/

│ ├── / # 模板文件

│ └── raw/ # 原始数据

├── .json # 配置文件

├── .txt # 依赖列表

└── main.py # 主入口

核心库(这些是真的好用):

表格

复制

场景 库 用途

Excel处理 , 读写、计算、合并

文件操作 , , os 路径处理、文件移动

网页抓取 , HTTP请求、HTML解析

定时任务 任务调度

邮件发送 , email 邮件自动化

数据存储 轻量级数据库

踩过的三个大坑(新手必看)

坑1:依赖地狱

最开始是为了贪图省事, 于是直接通过pip去安装包, 然而随后在重新安装系统之后, 却发觉忘掉了都安装了哪些包, 最终脚本全部崩溃了。

解决:始终用虚拟环境+.txt

bash

pip > .txt # 导出依赖

pip -r .txt # 恢复依赖

坑2:硬编码路径

一开始脚本里到处都是

/Users/name//data,换台电脑全废。

解决:用相对路径+配置文件

json

from Path

= json.load(f)

= Path(

''

坑3:没有错误处理

脚本跑着跑着崩了,不知道为什么。

解决:加上try-,日志记录

.(

='.log',

level=.INFO,

='%()s - %()s - %()s'

try:

# 你的代码

pass

as e:

.error(f"出错了: {e}")

从"能用"到"好用"的进阶

初级阶段:写个脚本,自己用

能跑就行,代码烂点无所谓

手动运行,手动填参数

中级阶段:优化代码,给同事用

模块化,拆分成函数和类

配置文件,参数可配置

错误处理,遇到问题不崩

高级阶段:做成工具,可分发

打包成exe()

写文档,齐全

版本控制(Git)

单元测试

我现在在中级和高级之间徘徊。够用就行,不用追求完美。

说实话,这些脚本没什么技术含量

真的。我写的这些脚本,任何一个学过基础的人都能写出来。

然而这偏偏就是要点所在, 即你并非一定要成为算法工程师那般, 并非一定要懂得机器学习相关内容, 并非一定要知晓设计模式方面的知识, 那么你只要:

会基础语法(变量、循环、函数、文件操作)

会用几个核心库(、、os)

会查资料(遇到问题/Stack )

就这么简单。

最后:这不是编程,这是生存技能

现况下, 存有“会运用工具”以及“不太会运用工具”这两种情形, 二者之间的差距, 正以那种可以凭借肉眼清晰瞧见的速率, 不断放大着。

不是讲你非得要学, 你能够运用Excel、采用低代码、借助任何工具, 关键所在是: 你可不可以将重复劳动实现自动化?

只是我选的那个工具,因为它:

免费

强大

易学

通用

如果明天出来个更好的工具,我也会学。

工具不重要,自动化思维才重要。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/29 4:04:30

车载通信防火墙怎么测?从 CAN 网关过滤到车载以太网访问控制

摘要:车载防火墙测试不是简单验证“某个报文能不能通过”。CAN/CAN FD、以太网交换芯片和 Linux 网络栈看到的报文不同,规则匹配条件也不同。要把测试做扎实,需要先找准执行点,再从通信矩阵提取允许关系,最后用入口报文、规则命中、出口报文和目标服务组成完整证据链。本文…

作者头像 李华
网站建设 2026/8/29 4:04:25

编写的python如何打开

欲开启并运转程序, 你得保证在计算机里已装上解释器,有通过命令行、集成开发环境(即IDE)、或脚本文件径直运行代码三种途径, 接下来我会详尽阐释怎样借由这几种办法开启并运转程序。一、通过命令行运行在Mac操作系统里, 或者Linux操作系统之中…

作者头像 李华
网站建设 2026/8/29 4:03:11

古装、甜宠、悬疑短剧如何解说?短剧解说批量生产服务商测评

古装、甜宠和悬疑短剧都能剪成解说视频,但不能共用同一套解说逻辑。古装首先考验人物身份和阵营,甜宠依赖关系变化与情绪节奏,悬疑则要求控制线索和反转出现的顺序。本文把三类题材作为短剧解说批量生产服务商测评的压力项,并结合…

作者头像 李华
网站建设 2026/8/29 4:02:48

AI 爬虫 OpenClaw 任务老卡死?这 5 套顶级方案助你“逆天改命”!

于这个LLM到处都是的时代之中, 为AI提供充足食粮的并非单单是简洁的文字, 而是数量巨大的、处于实时状态的全网范围的数据。身为AI Agent爬虫领域的“新兴显贵”, 使得无数开发者大声诉说其非常不错, 然而随之所产生的“任务停滞不动”、“进程僵硬死亡”同样令人极度抓狂。现如…

作者头像 李华
网站建设 2026/8/29 4:02:32

双记忆机制:破解长程智能体任务成功率难题的关键设计

如果我告诉你,一个长程智能体在处理 20 步任务时,前 5 步表现尚可,从第 6 步开始逐渐跑偏,到最后一步干脆输出一个与目标无关的结果,你可能不会太惊讶。因为这就是当前长程智能体最普遍的问题形态:不是第一…

作者头像 李华
网站建设 2026/8/29 4:01:58

企上榜解析:AI 推荐越精准实体企业越易隐形

引言:被算法遗忘的实体企业 一位制造业老板深夜接到客户电话,对方明确说:"我搜了三次,AI推荐的名单里都没有你们。“这并非偶然,而是越来越多实体企业正在经历的现实——当AI推荐算法越来越精准,那些真…

作者头像 李华