一. 痛点
初入IT职场的运维侠小白,领着微薄的薪资,面对经理的刁难,同事的欺凌、老旧的服务器频频故障…
随时面临裁员危机,他该如何破局,迎娶白富美,实现人生理想?
第一步:学习是成功他爷爷 他不仅充分利用碎片化时间通过阅读提高能力,还会在博客将心得体会文章分享给朋友们,做总结,分析,制定出一套在实践中不断成熟的运维19掌。
在公交地铁上,你能看到运维侠小白在低头看手机?真是这样吗?他要放弃人生理想吗?
原来运维侠小白是在通过读书APP在学习。原来他连公交地铁上的时间都不放过!
第二步:效率、效率、效率 重要的事要说不少于3遍。工作做不到前头,经理更不会让你下班的,怎么约同事小花、小路、小红…
运维侠小白只能把别人打游戏的时间,用在学习python自动化运维上…
某天,经理老球甩给运维侠小白一大堆电子文档:“小白,上午11点前完成,不然滚蛋…”
运维侠小白不是第一次接到这种任务,他想到了他的女朋友python(当时没有女朋友,只有把python当成她了
)
python自动化试试,说不定能完成,运维侠小白心里说。
效果对比
| 操作方式 | 时间消耗 | 错误率 |
|---|---|---|
| 手动 | 30分钟 | 高出错 |
| Python自动化 | 3分钟 | 0 |
二.代码示例
老球给运维侠的是一个压缩包文件,里面乱起八遭,图片、视频、各种文件都有,要求仅将里面的Excel文件名称改为老球.excel形式,并发送给他。
⚠️提示:为了方便理解,我将复杂代码分解,实际案例,可将代码组合并根据情况修改。
分解代码流程示例
🤖
开始创建batch_decompress_zip.py文件
│
├─ 解压缩包
│
├─ 处理其中的Excel文件
│ │
│ ├─ 筛选出符合条件的文件
│ │
│ └─ 重命名
│
└─创建压缩包 → 结束
(1)解压缩包
⚠️避免报错:
- 功能 以3个文件为例,其他数量的文件依次添加即可。
- 文件路径 没有写绝对路径默认是处理python代码所在路径的文件,因此需要把代码文件放到这个处理的文件同一文件夹里。
💻 代码:读取压缩包内容
import zipfile
with zipfile.ZipFile(r'C:\Users\ZHAOY\PycharmProjects\1\Excel\老球原始文件-1.zip','r') as zipb:
print(zipb.namelist())
执行代码效果:可用看到代码读取的内容与用zip查看软件手动打开的文件名一样。


💻 代码:解压缩包中单个文件
import zipfile
with zipfile.ZipFile(r'C:\Users\ZHAOY\PycharmProjects\1\Excel\老球原始文件-1.zip','r') as zipb:
zipb.extract('老球-1.xlsx',r'C:\Users\ZHAOY\PycharmProjects\1\new_dir')
执行代码效果:

💻 代码:批量解压缩包中文件
import zipfile
with zipfile.ZipFile(r'C:\Users\ZHAOY\PycharmProjects\1\Excel\老球原始文件-1.zip','r') as zipb:
zipb.extractall(r'C:\Users\ZHAOY\PycharmProjects\1\new_dir')
执行代码效果:

(2)处理Excel文件
1、获取单个Excel文件的路径、名称等信息
💻 代码:
import os
# 1. 打开Excel文件
file_path = r'C:\Users\ZHAOY\PycharmProjects\1\Excel\老球文件-1.xlsx'
# 2. 定义各个功能的变量
dir_path = os.path.dirname(file_path)
file_name = os.path.basename(file_path)
stem_name = os.path.splitext(file_name)[0]
suf_name = os.path.splitext(file_name)[1]
# 3. 输出变量的值
print('路径:',path)
print('带扩展名的文件名:',file_name)
print('不带扩展名的文件名:',stem_name)
print('文件扩展名:',suf_name)
执行代码效果:

2、批量获取文件夹里所有Excel文件的名称
💻 代码:
from pathlib import Path
# 1. 获取文件夹目录位置
folder_path = Path(r'C:\Users\ZHAOY\PycharmProjects\1\Excel')
file_lst = folder_path.glob('*.xlsx*')
# 2. 循环读取文件夹里Excel文件名
lst = []
for i in file_lst:
file_name = i.name
lst.append(file_name)
# 3. 输出变量的值
print(lst)
执行代码效果:

3、批量重命名Excel文件名
💻 代码:
from pathlib import Path
# 1. 获取文件夹目录位置
folder_path = Path(r'C:\Users\ZHAOY\PycharmProjects\1\Excel')
# 获取所有.xlsx文件(先转换为列表避免动态变化)
file_list = list(folder_path.glob('*.xlsx')) # 精确匹配.xlsx结尾
# 2. 批量重命名并记录结果
new_names = []
for index, file_path in enumerate(file_list, start=1):
# 构建新文件名
new_name = f"老球-{index}.xlsx"
# 构建新文件完整路径
new_path = file_path.parent / new_name
# 执行重命名操作
file_path.rename(new_path)
# 记录新文件名
new_names.append(new_name)
# 3. 输出重命名结果
print("重命名后的文件列表:", new_names)
执行代码效果:

(3)创建压缩包
⚠️避免报错:
- 功能 以3个文件为例,其他数量的文件依次添加即可。
- 文件路径 没有写绝对路径默认是处理python代码所在路径的文件,因此需要把代码文件放到这个处理的文件同一文件夹里。
💻 代码:
import zipfile
file_lst = ['老球-1.xlsx','老球-2.xlsx','老球-3.xlsx',]
with zipfile.ZipFile('老球的Excel.zip','w') as zipb:
for file in file_lst:
zipb.write(file)
执行代码效果:

💡 朋友们!你平时用Excel最头疼的操作是什么?
💡在评论区告诉我,下期教你用Python搞定!
3312

被折叠的 条评论
为什么被折叠?



