十个Python办公自动化高频操作:路径处理与文件批处理实战
本文整理十个Python办公自动化高频操作,涵盖文件夹遍历、文件判断、路径解析、目录创建、桌面路径获取、文件重命名及移动等实用技巧。重点讲解os、shutil与glob模块在批处理中的应用,提供即拿即用的代码框架,帮助开发者提升文件处理效率。
一、遍历文件夹
具体实现代码如下,请根据实际存储路径进行相应调整。
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') # 重命名文件夹
七、批处理文件 - 1
除前述 os.walk 外,os 模块下的其他方法也可获取指定路径下的全部或符合条件的文件(无需遍历子文件夹)。此外,还可使用以下两种代码:第一种方法利用 os.scandir(),使用示例如下:
import os
path = 'xxx'
for file in os.scandir(path):
print(file.name, file.path)
八、批处理文件 - 2
上述代码最后输出的是给定路径下各内容的名称与绝对路径。第二种方法使用 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 一步完成。
十、批处理文件 - 3
最后介绍 glob 模块,这是办公自动化必须掌握的工具,同样适用于文件批处理。
glob 的核心功能是搜索并获取同一级或各子级下符合条件的文件(绝对路径),非常适合编写批处理脚本。
当需对大量文件执行相同操作时,在完成单文件处理逻辑后,仅需增加几行代码即可完成全部文件的批处理。大致代码框架如下:
import glob
for file in glob.glob('**/*', recursive=True):
print(file)
glob.glob() 是关键方法,可获取指定路径下文件的绝对路径,并支持「通配符」搜索,极大提升了灵活性。其中 * 表示任意字符长度,**/* 表示通配符指代给定路径下的任何层级,recursive 参数允许进行递归遍历搜索。
至此,关于十个Python自动化常用操作的介绍结束。如需了解更多Python自动化内容,请查阅本站往期文章或继续浏览后续相关资源,感谢支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









