自动化办公的python代码

简介: 自动化办公的python代码

01

OS模块相关

一、遍历文件夹
批量操作的前提就是对文件夹进行遍历,使用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') # 重命名文件
//代码效果参考:http://www.ezhiqi.com/zx/art_2856.html

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)

02

shutil模块相关

九、移动文件/文件夹
shutil也是经常出现在办公自动化场景中的模块,我常用的就是移动文件/文件夹。

需要用到shutil.move 方法,下面的代码示例中分别演示如何移动文件和文件夹:

import shutil

shutil.move(r'.\practice.txt', r'.\文件夹1/')
shutil.move(r'.\practice.txt', r'.\文件夹1/new.txt')
//代码效果参考:http://www.ezhiqi.com/zx/art_1974.html

注意到上面后两行代码的区别吗?前一行是将目标文件移动到目标文件夹里,而后一行,在将目标文件移动到目标文件夹里的同时,能够对其进行重命名

也就是说,如果我们需要移动某个或某些文件到新的文件夹,并且需重命名文件,则我们并不需要用os.rename 先命名文件再用 shutil.move 将其移动的指定文件夹,而是可以用 shutil.move 一步到位

03

glob模块相关

十、批处理文件 - 3
最后要介绍的是glob模块,也是办公自动化必须要掌握的一个模块,同样可以用于批处理文件。

glob 最重要的功能就是搜索获取同一级或者各子级下符合条件的文件(绝对路径),非常适合写批处理的代码。

有时候我们需要对大量文件进行相同操作,在写完针对一份文件的操作后,只需要加上几行代码,就可以完成批处理全部文件的工作。大致代码框架如下:

import glob

for file in glob.glob('/', recursive=True):
print(file)
glob.glob() 是一个非常重要的方法,能够获取给定路径下文件的绝对路径,并且接受「通配符」搜索,大大拓宽了灵活程度,
表示任意字符长度,
/* 的使用表示用通配符指代给定路径下的任何一层,recursive 参数允许遍历搜索。

相关文章
|
17天前
|
搜索推荐 Python
使用Python自动化生成物业通知单
本文介绍如何使用Python结合Pandas和python-docx库自动化生成物业通知单。通过读取Excel数据并填充至Word模板,实现高效准确的通知单批量制作。包括环境准备、代码解析及效果展示,适用于物业管理场景。
54 14
|
20天前
|
开发框架 数据建模 中间件
Python中的装饰器:简化代码,增强功能
在Python的世界里,装饰器是那些静悄悄的幕后英雄。它们不张扬,却能默默地为函数或类增添强大的功能。本文将带你了解装饰器的魅力所在,从基础概念到实际应用,我们一步步揭开装饰器的神秘面纱。准备好了吗?让我们开始这段简洁而富有启发性的旅程吧!
26 6
|
14天前
|
Python Windows
Python实现常用办公文件格式转换
本文介绍了如何使用Python及其相关库(如`pandas`、`openpyxl`、`python-docx`等)实现办公文件格式间的转换,包括XLS转XLSX、DOC转DOCX、PPT转PPTX、Word转PDF及PDF转Word,并提供了具体代码示例和注意事项。
142 89
|
8天前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
29 7
|
14天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
57 8
|
21天前
|
API Python
【Azure Developer】分享一段Python代码调用Graph API创建用户的示例
分享一段Python代码调用Graph API创建用户的示例
44 11
|
18天前
|
Python
探索Python中的装饰器:简化代码,增强功能
在Python的世界里,装饰器就像是给函数穿上了一件神奇的外套,让它们拥有了超能力。本文将通过浅显易懂的语言和生动的比喻,带你了解装饰器的基本概念、使用方法以及它们如何让你的代码变得更加简洁高效。让我们一起揭开装饰器的神秘面纱,看看它是如何在不改变函数核心逻辑的情况下,为函数增添新功能的吧!
|
19天前
|
程序员 测试技术 数据安全/隐私保护
深入理解Python装饰器:提升代码重用与可读性
本文旨在为中高级Python开发者提供一份关于装饰器的深度解析。通过探讨装饰器的基本原理、类型以及在实际项目中的应用案例,帮助读者更好地理解并运用这一强大的语言特性。不同于常规摘要,本文将以一个实际的软件开发场景引入,逐步揭示装饰器如何优化代码结构,提高开发效率和代码质量。
44 6
|
21天前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
30 4
|
20天前
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!