Python复制目录及其子目录下的所有文件到指定新目录并重命名

news2024/11/25 14:40:57

Python复制目录及其子目录下的所有文件到指定新目录并重命名

  • 前言
  • 前提条件
  • 相关介绍
  • 实验环境
  • Python复制目录及其子目录下的所有文件到指定新目录并重命名
    • 代码实现
    • 输出结果

前言

  • 本文是个人使用Python处理文件的电子笔记,由于水平有限,难免出现错漏,敬请批评改正。
    (https://blog.csdn.net/friendshiptang/category_11653584.html)专栏或我的个人主页查看
  • YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制
  • YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层
  • YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
  • YOLOv7训练自己的数据集(口罩检测)
  • YOLOv8训练自己的数据集(足球检测)

前提条件

  • 熟悉Python

相关介绍

  • Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
  • Python OS模块是负责程序与操作系统的交互,提供了访问操作系统底层的接口和非常丰富的方法用来处理文件和目录。

实验环境

  • Python 3.x (面向对象的高级语言)

Python复制目录及其子目录下的所有文件到指定新目录并重命名

在这里插入图片描述

代码实现

import os
import shutil

def copy_file(filename_path, target_path):
    # 复制文件到新文件夹
    shutil.copy(filename_path, target_path)
    # 重命名文件
    new_file_name_list = filename_path.split('\\')
    new_file_name = '_'.join(new_file_name_list)
    # print(new_file_name)
    os.rename(target_path + '/' + new_file_name_list[-1], target_path + '/' + new_file_name)

def print_dir(filepath):
  for i in os.listdir(filepath):
    path = (os.path.join(filepath, i))
    if os.path.isdir(path):      		# isdir()判断是否是目录
       print_dir(path)         		# 如果是目录,使用递归方法
    if os.path.isfile(path):
       copy_file(path,target_path)

if __name__=="__main__":
    global target_path # 全局变量
    target_path = "rename_copy_output_dir"
    if not os.path.exists(target_path):
        os.mkdir(target_path)
    filepath = "first_dir"
    print_dir(filepath)

输出结果

在这里插入图片描述

  • 更多精彩内容,可点击进入Python日常小操作专栏或我的个人主页查看
  • YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制
  • YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层
  • YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
  • YOLOv7训练自己的数据集(口罩检测)
  • YOLOv8训练自己的数据集(足球检测)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最常用的界线矢量数据大合集(文末有附下载方法)

最近收集了挺多比较常用的矢量界线数据,例如地理分区、气候分区等界线数据,在日常制图、学习、科研等方面使用频率比较高。废话不多说,这里给大家分享一下!! 1、中国农业熟制区划矢量数据 2、黄土高原空间范围矢量数据…

【Leetcode -509.斐波那契数 -520.检测大写字母】

Leetcode Leetcode - 509.斐波那契数Leetcode - 520.检测大写字母 Leetcode - 509.斐波那契数 题目:斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。 该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。…

node笔记_koa框架是什么?

文章目录 ⭐前言⭐ koa框架是如何发展而来的?⭐ koa框架的基本使用💖 安装 koa💖 koa的Middleware示例💖 支持xml ⭐ 结束 ⭐前言 大家好,我是yma16,本文介绍node的一个web框架koa。 往期文章 node_window…

第三章: Mybatis-Plus 的通用CRUD API 练习使用

目录 1. Insert 操作 -> Create 1.1: TableId 的 id策略 1.2: TableField 2. Update 操作 -> Update 2.1: 根据 ID 更新 2.2: 根据条件更新 3. Delete 操作 -> Delete 3.1: deleteById 3.2: deleteByMap 3.3: delete 3.4: deleteBatchIds 4. Select 操作 -&g…

Redis修炼 (15. redis的持久化-RDB)

RDB 就是 redis database backup file 数据备份文件 就是把内存中的所有数据都保存在磁盘中。 save 注意这个保存过程是主进程在做 因为redis 是单线程 所有其他所有请求都会被卡死。 bgsave 这个稍微友好一点 是子进程 执行,避免主进程收到影响。 redis在服务停机…

【JavaWeb】-- Maven基础、MyBatis

文章目录 Maven基础1.Maven简介1.1 Maven模型1.2 仓库 2.Maven安装3.Maven基本使用3.1 Maven常用命令3.2 Maven生命周期 4.IDEA使用Maven4.1 IDEA配置Maven环境4.2 Maven坐标4.3 IDEA 创建Maven项目 5.依赖管理5.1 使用坐标引入jar包5.2 依赖范围 MyBatis1.MyBatis概述1.1JDBC的…

JDK、JRE和JVM三者的区别和联系

一、JDK、JRE、JVM分别是什么 (一)JDK JDK,全称Java Development Kit,是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的Java应用程序。JDK是整个Java开发的核心。 (二)JRE J…

Day970.数据库表解耦 -遗留系统现代化实战

数据库表解耦 Hi,我是阿昌,今天学习记录的是关于数据库表解耦的内容。 微服务拆分之初,需要搭建好的两个基础设施,一个是基于开关的反向代理,另一个是数据同步机制。 有了这两个设施做保障,接下来就可以…

Python合并同名Labelme标注文件内容

Python合并同名Labelme标注文件内容 前言前提条件相关介绍实验环境Python合并同名Labelme标注文件内容Json文件代码实现输出结果json文件 前言 本文是个人使用Python处理文件的电子笔记,由于水平有限,难免出现错漏,敬请批评改正。 (https://b…

Sping核心知识点总结

Spring框架日渐成熟,已经成为java开发中比不可少的部分,框架这东西我的理解里属于工具型应用,意味着如果没有大量实践之前之间研究理论 研究源码之类的 体会会很效率会很低,所以个人建议萌新先找个项目做一做,感受一下…

【C/C++的内存管理】

欢迎阅读本篇文章 前言🍕1. C/C内存分布1.1有关C/C的一道题目 🍕2. C语言中动态内存管理方式:malloc/calloc/realloc/free🍕3. C内存管理方式3.1 new/delete操作内置类型3.2 new和delete操作自定义类型 🍕4. operator …

论国内如何免费使用GPT4

什么是GPT,能做什么? GPT,全名为Generative Pre-trained Transformer,是一类基于Transformer架构的自然语言处理模型。GPT的主要功能包括: 文本生成:能够根据给定的输入生成合理的文本,如文章、…

双向链表实现约瑟夫问题

title: 双向链表实现约瑟夫问题 date: 2023-05-16 11:42:26 tags: **问题:**知n个人围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去&…

Java进阶-Collection集合

1.Collection集合 1.1数组和集合的区别 相同点 都是容器,可以存储多个数据 不同点 数组的长度是不可变的,集合的长度是可变的 数组可以存基本数据类型和引用数据类型 集合只能存引用数据类型,如果要存基本数据类型,需要存对应的…

ubuntu20.04开机界面黑屏,只有一个光标闪烁

接下来我就把我的解决方法完整的发出来,因为我也是非常的绝望,终于在不断尝试中解决了问题 首先开机界面就是这个东西,一直卡在这不动了,原因就是,内存被用完了,无法加载出图形化界面 解决方法&#xff1…

springboot基于vue的MOBA类游戏攻略分享平台

系统分析 系统可行性分析 1、经济可行性 由于本系统本身存在一些技术层面的缺陷,并不能直接用于商业用途,只想要通过该系统的开发提高自身学术水平,不需要特定服务器等额外花费。所有创造及工作过程仅需在个人电脑上就能实现,使…

Redis学习--下载与安装

Redis下载与安装 Redis安装包分为windows版和Linux版: Windows版下载地址:https://github.com/microsoftarchive/redis/releases Linux版下载地址:https:/download.redis.io/releases 在Linux系统安装Redis步骤: 1.将Redis安装…

JENKINS部署-学习踩坑日记

1、JENKINS情况介绍 使用docker安装JENKINS,教程可以在网上搜到,步骤执行; 2、服务器情况介绍 JENKINS部署在A服务器上面,要把项目从gitlab上面拉取下来,然后编译推送jar到B服务器,然后通过docker-compose…

Linux:文本三剑客之sed编辑器

Linux:sed编辑器 一、sed1.1 sed编辑器1.2 sed编辑器的工作流程1.3 命令格式1.4常用选项1.5 常用操作1.6 实际应用 一、sed 1.1 sed编辑器 sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。sed编辑器可以根据命…

理解JVM

认识JVM Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。 什么是字节码? 字节码就是jvm能理解的代码。即扩展名为 .class 的文件。 我们日常的java文件先编译成.class 文件 然后在jvm上运行。 个人觉得 内存区域是理解JVM相关的基石。所以彻…