大家好,我是Python进阶者。 一、前言前几天在帮助粉丝解决问题的时候,遇到一个简单的小需求,这里拿出来跟大家一起分享,后面再次遇到的时候,可以从这里得到灵感。 二、需求澄清粉丝的问题来源于实际的需求,她现在想要复制一个文件夹下机器子文件夹下的指定文件,如果是正常操作的话,肯定是挨个点击进去文件夹和子文件夹,然后找到对应文件,然后复制粘贴出来到指定的文件夹。这样做肯定是可以,但是当有上百个文件夹需要复制呢?肯定就需要消耗大量的时间和精力了。 现在她想使用Python批量实现文件夹及其子文件夹下指定文件的复制。比方说她想要这个文件夹下及其子文件下所有带【需求单】的文件。 三、实现过程这里给大家提供一个可行的代码,思路也很简单,直接遍历文件夹和子文件夹,然后加文件判断,之后符合条件的,直接使用shutil 库进行复制即可,代码如下: import shutil import os
def copy_file(path): # (root,dirs,files)分别为:遍历的文件夹,遍历的文件夹下的所有文件夹,遍历的文件夹下的所有文件 for root, dirs, files in os.walk(path): for file in files: if "需求单" in file: shutil.copyfile(root + '\\' + file, target_path + '\\' + file) print(root + '\\' + file + ' 复制成功-> ' + target_path) for dir_in in dirs: copy_file(dir_in)
if __name__ == '__main__': # 文件夹路径 source_path = r'C:\Users\pdcfi\Desktop\test\需求单' # 输出路径 target_path = r'C:\Users\pdcfi\Desktop\test\res' copy_file(source_path)
代码运行之后,就可以把某一文件夹下及其子文件夹下的指定文件全部复制出来,再也不用挨个去手动复制了,使用Python 事半功倍! 三、总结大家好,我是皮皮。这篇文章主要盘点一个Python 自动化办公的实用案例,这个案例可以适用于实际工作中文件处理,大家也可以稍微改进下,用于自己的实际工作中去,举一反三。 ------------------- End -------------------
|