使用Python复制某文件夹下子文件夹名为数据文件夹下的所有以DD开头的文件夹到桌面...

点击上方“Python爬虫与数据挖掘”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书

楼阁玲珑五云起,其中绰约多仙子。

大家好,我是皮皮。

一、前言

前几天在Python最强王者群【魏哥】问了一个Python自动化办公处理的问题,这里拿出来给大家分享下。

70b1efa516c1f148e4b784a600ea0e0b.png

二、实现过程

这里他自己有一个原始代码,但是实现的效果不尽人意。

import shutil
import os

# import sys  # 导入sys模块
# sys.setrecursionlimit(1000)  # 将默认的递归深度修改为3000


def copy_file(path):
    # (root,dirs,files)分别为:遍历的文件夹,遍历的文件夹下的所有文件夹,遍历的文件夹下的所有文件
    for root, dirs, files in os.walk(path):
        for dir in dirs:
            if "数据" in dir:
                if "DD" in dir:  # 多了一层限定条件
                    shutil.copyfile(root + '\\' + dir, target_path + '\\' + dir)
                #     shutil.copytree(root + '\\' + dir, target_path + '\\' + dir)
                    print(root + '\\' + dir + ' 复制成功-> ' + target_path)
        for dir_in in dirs:
        # for dir_in in root:
            copy_file(dir_in)


if __name__ == '__main__':
    # 文件夹路径
    source_path = r'D:\供应链\订单&需求单\前传小站'
    # 输出路径
    target_path = r'C:\Users\pdcfi\Desktop\res'
    copy_file(source_path)

后来【eric】给了一个思路,如果一次性实现不行的话,那就分两次进行,拆分开来。思路是:第一次提取所有包含“数据”打头的文件夹,第二次,再针对获取到的“数据”的文件夹,再做一次代码处理,增加“DD”文件夹的筛选条件即可。

代码分别如下所示:第一次提取:

def copy_file(path):
    num = 1
    # (root,dirs,files)分别为:遍历的文件夹,遍历的文件夹下的所有文件夹,遍历的文件夹下的所有文件
    for root, dirs, files in os.walk(path):
        for dir in dirs:
            if "数据" in dir:
                shutil.copytree(root + '\\' + dir, target_path + '\\' + f"{dir}{num}")
            #     shutil.copytree(root + '\\' + dir, target_path + '\\' + dir)
                print(root + '\\' + dir + ' 复制成功-> ' + target_path)
                num += 1
        # for dir_in in dirs:
        # # for dir_in in root:
        #     copy_file(dir_in)
if name == 'main':
# 文件夹路径
source_path = r'D:\供应链'
# 输出路径
target_path = r'C:\Users\Desktop\res'
copy_file(source_path)

第二次提取:

def copy_file(path):
    # num = 1
    # (root,dirs,files)分别为:遍历的文件夹,遍历的文件夹下的所有文件夹,遍历的文件夹下的所有文件
    for root, dirs, files in os.walk(path):
        for dir in dirs:
            if "DD" in dir:
                shutil.copytree(root + '\\' + dir, target_path + '\\' + f"{dir}")
            #     shutil.copytree(root + '\\' + dir, target_path + '\\' + dir)
                print(root + '\\' + dir + ' 复制成功-> ' + target_path)
                # num += 1
        # for dir_in in dirs:
        # # for dir_in in root:
        #     copy_file(dir_in)
if name == 'main':
# 文件夹路径
source_path = r'C:\Users\Desktop\res'
# 输出路径
target_path = r'C:\Users\Desktop\DD'
copy_file(source_path)

顺利的解决了粉丝的问题:

e30be259f43fa2eceb09197d360472dc.png

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Python自动化办公的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【魏哥】提问,感谢【eric】、【瑜亮老师】给出的思路和代码解析,感谢【冫马讠成】、【冷喵】等人参与学习交流。

【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。

a799a436738d6ba1082a788772efcb2d.png

大家在学习过程中如果有遇到问题,欢迎随时联系我解决(我的微信:pdcfighting1),应粉丝要求,我创建了一些高质量的Python付费学习交流群和付费接单群,欢迎大家加入我的Python学习交流群和接单群!

09f14b5cadff16c5a6fe0bd8f8696f09.png

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

5983198068d1fe8ac58a6bcf6f4a4858.jpeg

------------------- End -------------------

往期精彩文章推荐:

  • if a and b and c and d:这种代码有优雅的写法吗?

  • Pycharm和Python到底啥关系?

  • 都说chatGPT编程怎么怎么厉害,今天试了一下,有个静态网页,chatGPT居然没搞定?

  • 站不住就准备加仓,这个pandas语句该咋写?

7fcd4d483a60af4162b4c2686383cc25.png

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/23000.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

单模光纤二维模场分布的MATLAB仿真

在上一篇文章中,我们介绍了单模光纤的一维模场分布,能看出沿着径向的光场分布情况,并分析能量的分布 这一篇中,我们绘制光纤横截面上的二维光场分布:代码如下: clear close all V 2.4000; U 1.6453; W …

Netty和Tomcat的区别、性能对比

文章目录 一、Netty和Tomcat有什么区别?二、为什么Netty受欢迎?三、Netty为什么并发高 ? 一、Netty和Tomcat有什么区别? Netty和Tomcat最大的区别就在于通信协议,Tomcat是基于Http协议的,他的实质是一个基…

代码随想录算法训练营day52 | 300.最长递增子序列,674. 最长连续递增序列,718. 最长重复子数组

代码随想录算法训练营day52 | 300.最长递增子序列,674. 最长连续递增序列,718. 最长重复子数组 300.最长递增子序列解法一:动态规划 674. 最长连续递增序列解法一:动态规划解法二:双指针法 718. 最长重复子数组解法一&…

SQL案例-高校信息管理系统实现要求

SQL案例-高校信息管理系统实现要求 (1) 建表 stuInfo(学生信息表) 字段名称数据类型说明stuName字符学生姓名,该列必填,要考虑姓氏可能是两个字的,如欧阳俊雄stuNo字符学号,该列必填,学号不能重复,且必须…

算法|1.二分及其扩展

算法|1.二分及其扩展 1、有序数组中找到num 题意:给定有序数组,在有序数组中找到指定数字,找到返回true,找不到返回false. 解题思路: 数组有序查找指定元素使用二分法L指针初始值设为0,R指针初始值设为…

IOC初始化 IOC启动阶段 (Spring容器的启动流程)

[toc](IOC初始化 IOC启动阶段 (Spring容器的启动流程)) IOC初始化 IOC启动阶段 (Spring容器的启动流程) Resource定位过程:这个过程是指定位BeanDefinition的资源,也就是配置文件(如xml)的位置,并将其封装成Resource对…

拥抱新时代的Java

原文链接 拥抱新时代的Java Java作为面向对象编程的王牌语言,曾经风靡一时,在Web领域是绝对的老大。随着时间的推移,一些新的编程范式不断的涌现,如函数式编程,响应式编程,以及对函数的全力支持&#xff0…

node.js+vue房屋租赁管理系统z0g8w

本系统主要包括以下功能模块:租户、出租人、房源信息、预约看房、合同信息等模块。 其中设计的主要功能如下: (1)用户的注册和登录本系统,登录到系统的首页。 (2)用户可以发布自己的房源信息…

强化学习:值迭代和策略迭代

值迭代 通过上一章的学习,我们知道了贝尔曼最优方程的求解实际上分两部分,一是给定一个初始值 v k v_k vk​ 找到最优策略 π k 1 π_{k1} πk1​ ,二是更新 v k 1 v_{k1} vk1​   下面,我们将详细剖析这个算法&#xff0…

RabbitMQ

处理问题 服务异步调用 两个服务调用时,我们可以通过传统的HTTP方式,让服务A直接去调用服务B的接口,但是这种方式是同步的方式,虽然可以采用SpringBoot提供的Async注解实现异步调用,但是这种方式无法确保请求一定回访…

从Redisson的RedissonSemaphore引发的信号量实际含义的思考

Semaphore到底该如何使用 事情的起因是最近在看redisson的源码&#xff0c;刚好看到了RedissonSemaphore的acquire/release实现。 public RFuture<Void> releaseAsync(int permits) {if (permits < 0) {throw new IllegalArgumentException("Permits amount ca…

ThingsBoard教程(五十):规则节点解析 创建关系节点Create Relation Node,删除关系节点 Delete Relation Node

创建关系节点 Create Relation Node Since TB Version 2.2.1 根据类型和方向,从所选实体创建到消息发起方的关系。 以下消息发起方类型被允许:资产、设备、实体视图、客户、租、仪表板。 通过元数据键模式查找目标实体,然后在源实体和目标实体之间创建关系。 如果选择的…

ASP.NET Core 使用Filter和Redis实现接口防重

背景 日常开发中&#xff0c;经常需要对一些响应不是很快的关键业务接口增加防重功能&#xff0c;即短时间内收到的多个相同的请求&#xff0c;只处理一个&#xff0c;其余不处理&#xff0c;避免产生脏数据。 这和幂等性&#xff08;idempotency&#xff09;稍微有点区别&am…

每日一练 | 网络工程师软考真题 Day12

阅读以下说明&#xff0c;答复以下【问题1】至【问题3】 【说明】 某单位有1个总部和6个分部&#xff0c;各个部门都有自己的局域网。该单位申请了6个C类IP地址202.115.10.0/24~202.115.15.0/24&#xff0c;其中总部与分部4共用一个C类地址。现方案将这些部门用路由器互联&…

Mit6.006-problemSet03

3-1 哈希练习&#xff08;Hash Practice&#xff09; (a) 按顺序插入整数keys A[47, 61, 36, 52, 56, 33, 92]到尺寸为7的哈希表中&#xff0c;使用哈希函数 h ( k ) ( 10 k 4 ) m o d 7 h(k)(10k4)mod7 h(k)(10k4)mod7。哈希表的每个插槽&#xff0c;存储一个key&#xff…

字节真的是宇宙尽头吗?

身边在字节的朋友很多人抱怨很卷&#xff0c;但卷到何种程度?很多人没有直观感受。某乎上一个问题(在字节跳动工作是怎样的?)点赞排名第一的回答生动的解释了字节的卷。 租房的舍友在字节工作。 舍友主卧&#xff0c;我次卧。 合租两个月了&#xff0c;我没见过舍友长什么样。…

日语文法PPT截图31-45

31 形式名词 とき ところ 作为形式名词的话&#xff0c;一般是要写假名不写汉字的 相对时态 如果是一般时/将来时とき&#xff0c;就是先做后面的动作&#xff0c;在做前面的动作。 出教室的时候&#xff0c;关灯。 如果是过去时とき那么&#xff0c;是先做前面的动作&#…

【dfn序+DP】树

把一棵树转化成一个序列有三种方法&#xff1a; dfs序 dfn序&#xff08;时间戳&#xff09; 欧拉序 关于这三者的区别&#xff0c;参考这篇博客&#xff0c;讲的超级好&#xff01; 重谈DFS序、时间戳和欧拉序 - Seaway-Fu - 博客园 (cnblogs.com) 题意&#xff1a; 思路…

SVN 导出改动差异文件

文章目录 SVN 导出改动差异文件应用场景/背景介绍具体操作方法 SVN 导出改动差异文件 应用场景/背景介绍 当然下面的两个场景介绍可能用分支管理都会有不错的效果&#xff0c;或者更优&#xff0c;只是记录一下思路&#xff0c;用什么还是看大家个人爱好啦 在开发过程中偶尔会…

1. Ansible介绍,什么是Ansible?Ansible能用来做什么?

什么是Ansible&#xff1f;Ansible能用来做什么&#xff1f; 如果您是系统工程师或IT管理员,或者只是在IT部门工作的任何人,您可能会在环境中执行大量重复性任务, 无论是每天调整大小和创建新主机或虚拟机&#xff64; 在其上应用配置&#xff64; 修补数百台服务器&#xff6…