excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Python办公自动化-os库

1

前面几篇文章说的都是些基础内容,与办公自动化并没有很直观的联系,本节课开始,将更新一些与自动化办公强相关内容。Python之所以受欢迎先说两方面原因,一方面是因为大数据时代到来,在获取数据、数据清洗、数据分析等领域,受益于众多的开源三方库,让Python有独特的优势,一切似乎都是那么简单;一方面是对新手友好,语法简洁,便于理解。支撑这两大块内容的基础便是丰富的核心库与自定义库,可以很方便实现所需要的业务逻辑。

2 os库使用

本节课主要简述一下核心库-os库。国际惯例先说重点,在自动化办公过程中,需要经常打开个各类文件,比如:excelwordPPT。按照正常工作步骤,要先找到文件(可以是新建或者打开)在哪,然后双击打开,然后编辑内容,最后保存输出。那么使用python,先将地址传入,然后通过程序打开、编辑文件,最后保存输出。os库就是专门进行地址操作的,可以这么说os库就是自动化办公的基础。

2.1 os.walk

os.walk(top, topdown=True, onerror=None, followlinks=False)

生成目录树中的文件名,方式是按上->下或下->上顺序浏览目录树。对于以 top 为根的目录树中的每个目录(包括 top 本身),它都会生成一个三元组 (dirpath, dirnames, filenames)

本段代码就是获取全量文件地址:

def Get_file_path(path):
result = []
for Filedir, Subdir, File_name_list in os.walk(path):
for Filename in File_name_list:
file_path = os.path.join(Filedir
,Filename)
result.append(file_path)
return result

2.2 os.getcwd()

获取程序所在的文件夹地址,类型为字符串。

2.3 os.getcwdb()

获取程序所在的文件夹地址,类型为字节串。

2.4 os.listdir(path)

返回指定文件夹地址path中的所有文件名,不包含文件夹地址,类型为列表。 该列表按任意顺序排列,并且不包括特殊条目 '.' '..',即使它们存在于中。

2.5 os.mkdir

os.mkdir(path, mode=0o777, *, dir_fd=None)

path假设path为不带地址的字符串,将在程序所在位置创建一个名为 path 的文件夹;path带有地址,将在地址位置创建文件夹。

mode目录的权限设置。

0o700:只有所有者有读//执行权限。

0o755:所有者拥有读//执行权限,而组和其他用户只有读/执行权限。

0o777:所有者、组和其他用户都具有读//执行权限。

dir_fd参数是一个相对较新的特性,用于指定要创建新目录的父目录的文件描述符。它允许你通过文件描述符来操作目录,而不是直接使用文件路径

如果文件夹已经存在, 会触发FileExistsError 错误。如果地址中的部分地址不存在,则会触发 FileNotFoundError错误

2.6 os.remove

os.remove(path, *, dir_fd=None)

它用于删除指定路径的文件。这个函数需要一个参数path,,即要删除的文件地址。

path要删除的文件地址。

dir_fd同上。

假设文件不存在,则会触发错误。

2.7 os.rename

os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)

将文件或目录 src 重命名为 dst

src源文件名或目录名

dst修改后的文件名或目录名

如果 dst 已存在,则下列情况下将会操作失败

2.8 os.path --- 常用路径操作

2.8.1 os.path.basename(path)

返回路径 path 的文件夹名称。这是将 path 传入函数 split() 之后,返回的一对值中的第二个元素。

path=r"C:\Desktop\实验"
print(os.path.basename(path))# 输出:实验

2.8.2 os.path.dirname(path)

返回路径 path 的上层完整地址名称。这是将 path 传入函数 split() 之后,返回的一对值中的第一个元素。

path=r"C:\Desktop\实验"
print(os.path.basename(path))# 输出:C:\Desktop

2.8.3 os.path.getsize(path)

返回 path 的文件夹大小,以字节(Byte)为单位。如果该文件不存在或不可访问,则抛出 OSError 异常。

path=r"C:\Desktop\实验"
print(os.path.getsize(path))# 输出12888

2.8.4 os.path.split(path)

将路径 path 拆分为一对,即 (head, tail)tail 是路径的最后一部分,而 head 里是除最后部分外的所有内容。tail 部分不会包含斜杠,如果 path 以斜杠结尾,则 tail 将为空。如果 path 中没有斜杠,head 将为空。如果 path 为空,则 head tail 均为空。head 末尾的斜杠会被去掉,除非它是根目录(即它仅包含一个或多个斜杠)。

path=r"C:\Desktop\实验"
print(os.path.split(path))# 输出('C:\\Desktop', '实验')

2.8.5 os.path.join(path0, path1,path2)

将路径 path与文件名结合成完整的地址。这个函数可以将多个路径部分组合成一个完整的路径。在处理文件和目录的路径时,这个函数非常有用。它可以正确地处理不同操作系统的路径分隔符,因此,你的代码可以在不同的操作系统上运行,而无需修改。

path=r"C:\Desktop\实验"
dir="实验.txt"
print(os.path.join(path,dir))# 输出C:\Desktop\实验\实验.txt

2.8.6 os.path.splitext(path)

将路径名称 path 拆分为 (root, ext) 对使得 root + ext == path,并且扩展名 ext 为空或以句点打头并最多只包含一个句点。

如果路径 path 不包含扩展名,则 ext 将为 '':

如果路径 path 包含扩展名,则 ext 将被设为该扩展名,包括打头的句点。

path=r"C:\Desktop\实验\foo.bar.exe"
print(os.path.splitext(path))
#
输出('C:\\Desktop\\实验\\foo.bar', '.exe')

2.8.7 os.path.splitdrive(path)

将路径 path 拆分为一对,即 (drive, tail),其中 drive 是挂载点或空字符串。在没有驱动器概念的系统上,drive 将始终为空字符串。在所有情况下,drive + tail 都与 path 相同。

Windows 上,本方法将路径拆分为驱动器/UNC 根节点和相对路径。

如果路径 path 包含盘符,则 drive 将包含冒号之前的所有内容包括冒号本身:

path=r"C:\Desktop\实验\foo.bar.exe"
print(os.path.splitdrive(path))
#
输出('C:', '\\Desktop\\实验\\foo.bar.exe')

3 小结

地址操作是自动化办公的基础,灵活使用可以事半功倍。本章主要介绍os库,os库可以获取地址、分解地址(获取所在盘、文件类型、父级地址、文件名)、合成地址,满足大部分办公场场景。这里提个醒,合成地址时为无脑合成,并不检测地址是否规范,用的时候检查一下,传入的地址是否正规。下一章内容,将介绍大名鼎鼎的pandas库。有问题可以在评论区提出,希望各位早日实现摸鱼自由,下次见。

4 小习题

基础版:利用os库以及if语句,提取固定文件夹中的“.exe”文件地址

进阶版:并将获取结果保存为txt

动起小手,开干吧

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接