本文分享一些办公自动化常用操作的代码,大家可以在自己的脚本中使用!01OS模块相关1.遍历文件夹批量操作的前提是要遍历文件夹。使用os模块可以轻松遍历文件夹。os.walk遍历后生成三个参数:当前文件夹路径包含文件夹名[列表形式]包含文件名[列表形式]代码如下,可以根据自己的路径修改importosfordirpath,dirnames,filenamesinos.walk(r'C:\\ProgramFiles(x86)'):print(f'Openfolder{dirpath}')#当前文件夹路径ifdirnames:print(dirnames)#包含文件夹名称[listform]iffilenames:print(filenames)#包含文件名[listform]print('-'*10)当手头的需求明确时,获取给定路径各级文件夹下所有符合条件的文件,以及执行相应的批量操作,可以使用os.walk2.目标路径是否为文件有时候我们需要判断目录中是否存在文件也可以使用os模块。给定一个目标路径path,一行代码即可判断是文件路径还是文件夹路径importospath='xxx'print(os.path.isfile(path))3.获取路径os.path中的文件名.basename可以直接从绝对路径得到最终的文件名,当然如果使用传统的字符串切割方式,即path.split('\')[-1]importospath='xxx'print(os.path.basename)4.创建文件夹创建文件夹的代码很常见,因为往往生成的新文件都希望有一个新的文件夹存放。代码如下:importosdirpath='xxx'os.mkdir(dirpath)但是,如果要创建的文件夹已经存在,运行os.mkdir()会报错并终止代码。为了避免这种情况,可以在创建文件夹之前判断文件夹是否存在。使用的代码是os.path.exists,只有当路径不存在时(即os.path.exists返回的结果为False时),才会创建:importosdirpath='xxx'ifnotos.path.exists(dirpath):os.mkdir(dirpath)5.获取桌面路径获取桌面路径也是一个很常见的操作。您可以使用os.path.join(os.path.expanduser("~"),'Desktop')获取桌面的绝对路径。这样做的好处是可以把数据放在桌面上,在不同的电脑上调用代码来处理数据。如果桌面路径在一台电脑上固定为字符串形式,则必须在另一台电脑上修改桌面路径。代码如下:importosdesktop_path=os.path.join(os.path.expanduser("~"),'Desktop')print(desktop_path)当然把上面的代码包装成一个函数会更方便GetDesktopPath()whenneededimportosdefGetDesktopPath():returnos.path.join(os.path.expanduser("~"),'Desktop')六、重命名文件/文件夹需要os.rename()方法,如下代码示例演示如何分别重命名文件和文件夹importosos.rename('practice.txt','practice_rename.txt')#重命名文件os.rename('folder1','folder2')#重命名文件夹7.批处理file-1除了前面的os.walk之外,os模块下还有其他方法可以完成指定路径下所有或符合条件的文件的获取(不需要遍历各级文件夹),也可以使用下面两段代码。首先使用的方法是os.scandir(),使用方法如下:importospath='xxx'forfileinos.scandir(path):print(file.name,file.path)8.批处理文件-2上面的代码最终输出了给定路径下每个内容的名称和绝对路径。第二种方法使用os.listdir(),它比os.scandir()更简单。可以直接调用输出名称而不是Path:importospath='xxx'forfileinos.listdir(path):print(file)02shutil模块相关九、移动文件/文件夹shutil也是经常出现的模块在办公自动化场景中,我经常使用移动文件/文件夹。您需要使用shutil.move方法。以下代码示例演示了如何移动文件和文件夹:'.\folder1/new.txt')注意到上面最后两行代码的区别了吗?上一行是将目标文件移动到目标文件夹,下一行可以在将目标文件移动到目标文件夹的同时重命名。也就是说,如果我们需要将一个或一些文件移动到新文件夹,并且文件需要重命名,那么我们不需要先使用os.rename命名文件,然后使用shutil.move将其移动到指定的文件夹,但我们可以一步使用shutil.move。03glob模块相关十。批处理文件-3最后要介绍的是glob模块,这也是办公自动化必须掌握的一个模块,批处理文件也可以使用。glob最重要的功能是在同一层级或每个子层级下搜索符合条件的文件(绝对路径),非常适合写批处理代码。有时我们需要对大量文件执行相同的操作。写完对一个文件的操作后,我们只需要添加几行代码就可以完成对所有文件的批量处理。大致的代码框架如下:importglobforfileinglob.glob('**/*',recursive=True):print(file)glob.glob()是一个很重要的方法,可以得到下面的文件名给定路径绝对路径,并接受“通配符”搜索,极大地拓宽了灵活性,表示任意字符长度,使用/表示使用通配符来指代给定路径下的任意层,递归参数允许遍历搜索。以上是小编为大家整理的十种常用操作的代码。其中大部分是通用的。您可以将本文收藏为书签,需要进行相关操作时可以直接复制粘贴使用。另外,也希望大家在自己写代码或者看别人的代码的时候,能够多想想哪些功能/代码片段可以被我用到,这样才能更快的进步!最近整理了数百G的Python学习资料,免费分享给大家!想上gong~hao“Python编程学习圈”,发“J”免费领取
