京公网安备 11010802034615号
经营许可证编号:京B2-20210330
来源:早起Python
作者:刘早起
大家好,我是早起。
在过去的半年内,我总共发布了超过了40篇 「Python办公自动化」文章,不知道大家有没有发现,有一些模块、一些代码会频繁出现。而os、shutil、glob基本是每篇都会出现。
在写了几十篇文章后,我将一些办公自动化常用操作的代码单独整理出来,大家拿走就可以用在自己的脚本中!
批量操作的前提就是对文件夹进行遍历,使用os模块可以轻松的遍历文件夹,os.walk 遍历后产生三个参数:
“当前文件夹路径包含文件夹名称[列表形式]包含文件名称[列表形式]”
代码如下,大家可以根据自己的路径进行修改
import os
for dirpath, dirnames, filenames in os.walk(r'C:Program Files (x86)'):
print(f'打开文件夹{dirpath}') # 当前文件夹路径 if dirnames:
print(dirnames) # 包含文件夹名称[列表形式] if filenames:
print(filenames) # 包含文件名称[列表形式] print('-' * 10)
当手上的需求明确有获取给定路径各级文件夹下所有符合条件的文件,并进行相应的批处理操作时,即可使用 os.walk
有时我们需要判断一个目录下是否存在文件也可以使用os模块。
给定一个目标路径 path ,通过一行代码就能够判断这是文件还是文件夹路径
import os path = 'xxx' print(os.path.isfile(path))
os.path.basename 可以直接从绝对路径中获取最后的文件名,当然如果用传统的字符串切割方式也可以,即 path.split('')[-1]
import os path = 'xxx' print(os.path.basename)
创建文件夹的代码非常常用,因为往往生成的新文件都希望有个新的文件夹存储,代码如下:
import os dirpath = 'xxx' os.mkdir(dirpath)
但是,如果希望创建的文件夹已经存在,再运行 os.mkdir() 则会报错而终止代码。为了避免这一情况的发生,可以在创建文件夹之前先判断文件夹是否存在。
用到的代码是 os.path.exists,只有当路径不存在(即 os.path.exists 返回的结果是 False 时),才会创建:
import os dirpath = 'xxx' if not os.path.exists(dirpath):
os.mkdir(dirpath)
获取桌面路径也是非常常用的操作,可以使用os.path.join(os.path.expanduser("~"), 'Desktop') 获取桌面的绝对路径。
这样做的好处是可以把数据放在桌面上,在不同的电脑上都能调用代码对数据进行处理。如果是在一条电脑上把桌面路径固定在字符串中,则换一台电脑就必须修改桌面路径。代码如下:
import os desktop_path = os.path.join(os.path.expanduser("~"), 'Desktop') print(desktop_path)
当然把上面的代码包装成一个函数 GetDesktopPath() 需要时调用它会更加方便
import os def GetDesktopPath():
return os.path.join(os.path.expanduser("~"), 'Desktop')
需要用到 os.rename() 方法,下面的代码示例中分别演示如何重命名文件和文件夹
import os os.rename('practice.txt', 'practice_rename.txt') #
重命名文件 os.rename('文件夹1', '文件夹2') # 重命名文件夹
除了前面的 os.walk 之外,有其他的 os 模块下方法可完成获取指定路径的全部或符合条件的文件(非遍历各级文件夹的需求),还可以使用下面两个代码 第一种用到的方法是os.scandir(),使用如下:
import os path = 'xxx' for file in os.scandir(path):
print(file.name, file.path)
上面代码最后输出的是 给定路径下各内容的名字、绝对路径第二种方法使用 os.listdir(),它比 os.scandir() 简单一些,可直接调用输出名称而非路径:
import os path = 'xxx' for file in os.listdir(path):
print(file)
shutil也是经常出现在办公自动化场景中的模块,我常用的就是移动文件/文件夹。
需要用到shutil.move 方法,下面的代码示例中分别演示如何移动文件和文件夹:
import shutil
shutil.move(r'.practice.txt', r'.文件夹1/')
shutil.move(r'.practice.txt', r'.文件夹1/new.txt')
注意到上面后两行代码的区别吗?前一行是将目标文件移动到目标文件夹里,而后一行,在将目标文件移动到目标文件夹里的同时,能够对其进行重命名
也就是说,如果我们需要移动某个或某些文件到新的文件夹,并且需重命名文件,则我们并不需要用 os.rename 先命名文件再用 shutil.move 将其移动的指定文件夹,而是可以用 shutil.move 一步到位。
最后要介绍的是glob模块,也是办公自动化必须要掌握的一个模块,同样可以用于批处理文件。
glob 最重要的功能就是搜索获取同一级或者各子级下符合条件的文件(绝对路径),非常适合写批处理的代码。
有时候我们需要对大量文件进行相同操作,在写完针对一份文件的操作后,只需要加上几行代码,就可以完成批处理全部文件的工作。大致代码框架如下:
import glob
for file in glob.glob('**/*', recursive=True):
print(file)
glob.glob() 是一个非常重要的方法,能够获取给定路径下文件的绝对路径,并且接受「通配符」搜索,大大拓宽了灵活程度,* 表示任意字符长度,**/* 的使用表示用通配符指代给定路径下的任何一层,recursive 参数允许遍历搜索。
以上就是我为大家整理的十个常用操作的代码,大部分都是可以通用的,大家可以收藏本文,并在需要进行相关操作的时候可以直接复制粘贴使用。
另外也希望大家在自己写代码、读别人代码时,可以多去思考哪些函数/代码片段是可以为我所用,这样才会进步的更快!
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在数据分析、业务监控、运营复盘等场景中,列值趋势计算是核心需求之一。无论是分析销售额的月度增长、用户活跃的变化趋势、库存 ...
2026-06-12在数字经济深度渗透的当下,消费者的购买行为已从过去的 “被动接受” 转变为 “主动决策”。流量红利消退、获客成本攀升、用户 ...
2026-06-12CDA三级认证是三个级别中的塔尖,全面考察数据战略、团队领导和复杂项目的综合能力。它所对应的《敏捷数据挖掘》教材,不再局限 ...
2026-06-12在游戏产业的商业逻辑中,付费玩家是支撑游戏生存与发展的核心支柱。行业普遍遵循 “二八定律”:20% 的付费玩家贡献了游戏 80% ...
2026-06-11【核心关键词】企业、定位、传统、产品、互联网、可视化、业务侧、数字化、结构化、数据分析、传统制造业、市场状态、发展空间 ...
2026-06-11 解读《CDA二级教材:量化策略分析(2025)》的全景结构与学习逻辑 ” CDA二级认证是企业招聘数据分析师时最常提及的证书门槛 ...
2026-06-11【核心关键词】药企、可视化、营销、分类、数据分析师、销售数据、业务人员、指导方向、分析报告、营销数据、营销医生 【专访摘 ...
2026-06-10在统计学分析、问卷调研、实验验证、业务复盘等场景中,卡方检验与 T 检验是应用最广泛的两类基础假设检验方法。前者专门处理分 ...
2026-06-10 很多数据分析师每天都在计算指标、制作报表,但当被问到“什么叫指标数据元”“指标数据标准包含哪些核心维度”“指标数据质 ...
2026-06-10在MySQL数据库日常查询、数据统计、后台接口开发、数据导出等场景中,开发者经常需要查询数据表除某几列之外的所有字段。例如查 ...
2026-06-09在Python网络请求、爬虫开发、接口测试、数据抓取等实操场景中,requests库是最常用的第三方请求工具,而content属性是requests ...
2026-06-09 数据分析正在重塑每一个行业。CDA认证的三本官方教材,分别对应Level I、Level II、Level III,为你铺就从业务数据分析到数 ...
2026-06-09在数字财务、智慧财税、业财融合深度推进的当下,传统财务模式下数据标准混乱、业务流程碎片化、知识无法沉淀、系统互通性差等问 ...
2026-06-08随着数字经济深度渗透各行各业,数据正式成为继土地、劳动力、资本、技术之后的第五大生产要素,是企业数字化转型、精细化运营、 ...
2026-06-08 很多数据分析师能熟练写SQL、做透视表,但当被问到“数据是从哪里来的?经过哪些加工才进入数据仓库?ETL具体做了什么?”时 ...
2026-06-08【核心关键词】贷款、报表、课程、专业、建模、缺失值、营销、互联网、银行、办公自动化、数据分析、数据预处理、特征工程、贷 ...
2026-06-05在数据库数据查询、业务报表统计、多表关联分析中,LEFT JOIN左连接是使用率最高的SQL关联查询语句。其核心特性是保留左表全部数 ...
2026-06-05 很多数据分析师能熟练地写SQL、做透视表、算描述性统计,但当被问到“如何预测用户流失概率”“如何归因销量下滑的关键因素 ...
2026-06-05任何一款产品从诞生、普及到最终退出市场,都会遵循一套固定的发展规律,这就是产品生命周期理论。在市场竞争日益激烈、产品迭代 ...
2026-06-04在Excel数据分析、办公统计、业务报表制作场景中,数据透视表是数据汇总、分类统计、快速复盘的核心工具,能够高效完成海量原始 ...
2026-06-04