大家好,我是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 -------------------
联系客服