Python依据某一文件夹中大量文件的名称复制另一文件夹中的同名文件

news2024/11/25 22:35:53

  本文介绍基于Python语言,针对一个文件夹下大量的Excel表格文件,基于其中每一个文件的名称,从另一个文件夹中找到与这一文件夹中文件同名的文件,并将找到的同名文件复制到第三个文件夹中的方法。

  首先,我们来明确一下本文的具体需求。现有一个文件夹,其中有大量的Excel表格文件(在本文中我们就以csv格式的文件为例)——这一文件夹中的文件其实也就是我们通过文章Python遍历大量表格文件并筛选出表格内数据缺失率低的文件(https://blog.csdn.net/zhebushibiaoshifu/article/details/130714834)筛选得到的文件;如下图所示。

  此外,我们还有一个文件夹(我们将其称作大文件夹),其中存放了较之上图所示的文件夹中,更多的Excel表格文件;我们希望实现的是,从这个大文件夹中,找到与上图所示文件夹Excel表格文件同名的文件,并将找到的同名文件复制到另一个新的文件夹中。

  知道了需求,我们就可以开始代码的撰写。其中,本文用到的代码如下所示。

# -*- coding: utf-8 -*-
"""
Created on Tue May 16 22:32:00 2023

@author: fkxxgis
"""

import os
import shutil

def copy_file_with_name(source_path, target_path, new_path):
    source_file = os.listdir(source_path)
    
    for file in source_file:
        target_file_path = os.path.join(target_path, file)
        
        if os.path.isfile(target_file_path):
            new_file_path = os.path.join(new_path, file)
            shutil.copy(target_file_path, new_file_path)
            
copy_file_with_name("E:/01_Reflectivity/99_Model_Training/00_Data/02_Extract_Data/14_PointSelection/LowMissingRate",
                    "E:/01_Reflectivity/99_Model_Training/00_Data/02_Extract_Data/13_AllYearAverage",
                    "E:/01_Reflectivity/99_Model_Training/00_Data/02_Extract_Data/15_8DaysSynthesis")

  上述这段代码中,我们首先导入了osshutil模块,os模块用于处理文件和文件夹的操作,shutil模块用于执行文件的复制操作。然后定义了一个名为copy_file_with_name的函数,该函数接受3个参数:source_path表示源文件夹路径,target_path表示目标文件夹(也就是上面提到的大文件夹)路径,new_path表示新的文件夹路径。source_file = os.listdir(source_path)获取源文件夹中的所有文件,并将文件列表赋值给source_file

  在接下来的这个循环中,对于源文件夹中的每个文件,我们构建目标文件的完整路径target_file_path,其中target_path是目标文件夹的路径,file是源文件夹中的文件名。然后使用os.path.isfile(target_file_path)检查目标文件是否存在,如果存在则执行下一步操作。接下来,我们构建新文件的完整路径new_file_path,其中new_path是新文件夹的路径,file是源文件夹中的文件名。最后,使用shutil.copy函数将目标文件复制到新文件夹中。

  最后一行代码调用了copy_file_with_name函数,传入了三个文件夹的路径作为参数,从一个文件夹中复制文件到另一个文件夹中。

  运行上述代码后,我们即可在new_path这一文件夹中,找到我们复制好的文件;其中,很显然new_path这一文件夹的文件数量与source_path文件夹中的文件数量是一致的。

  至此,大功告成。

欢迎关注:疯狂学习GIS

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

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

相关文章

【网络】深入浅出了解网络世界

HTTP协议 TCP/IP协议族 我们通常使用的网络,是在TCP/IP协议族上运作的。而HTTP协议就是TCP/IP内部的一个子集。 计算机与网络设备之间的通讯需要一定的规则,这种规则就称为协议。 TCP/IP就是互联网上各种协议的总称。 分层管理 TCP/IP 按层次分为…

架构活动中评估需求的五个关注点

从架构活动的整体目标出发,确认需求存在的必要性。很多时候,尤其是大的项目,需求方经常会夹带私货。虽然他们并没有什么恶意,但是这些附加的需求不仅会消耗研发资源,还会增加项目复杂度和规划难度。而最坏的情况&#…

【王道·计算机网络】第四章 网络层【未完】

一、 概述和功能 1.1 网络层功能 主要任务:把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务传输单位:数据报功能: 路由选择与分组转发,即选择最佳路径异构网络互联(依靠路由器)拥塞控制(所有结点都来不…

会议日程——2023第十二届中国PMO大会

2023第十二届中国PMO大会 主题:拥抱变革 展现PMO力量 主办方:PMO评论 签到与入场:人脸识别 时间:6月17-18日 地点:北京蓝调庄园 【邀 请 函】 企业要基业长青就必须持续保持组织活力。企业的内外部环境不会一成不…

Java --- redis实现分布式锁

目录 一、锁的种类 二、分布式锁具备的条件与刚需 三、springbootredisngnix单机实现案例 四、Nginx配置负载均衡 4.1、修改nginx配置文件 4.2、执行启动命令 4.3、启动微服务程序测试 五、使用redis分布式锁 5.1、方法递归重试 5.2、自旋方式 5.3、添加key过期时间&#xff0…

Vue3如何按需引入Element Plus以及定制主题色

1.首先使用指令进行安装 npm install element-plus --save 2.安装按需引入另外两个插件 npm install -D unplugin-vue-components unplugin-auto-import 3.在vite.config.js文件引入以下内容 import { fileURLToPath, URL } from node:urlimport { defineConfig } from vite i…

CloudFlare系列--自定义CDN节点的IP

原文网址:CloudFlare系列--自定义CDN节点的IP_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍CloudFlare如何手动指定CDN为CloudFlare的IP地址。 为什么手动指定CDN IP? 自选节点非常重要,原因如下: 国内访问不同CDN节点的速…

Linux vim光标移动/退出命令/撤退操作/文本查找 等命令大全

1 什么是vim? vim是Linux环境下一款强大、高度可定制的文本编辑工具。能够编辑任何的ASCII格式文件,对内容进行创建、查找、替换、修改、删除、复制、粘贴等操作。编写文件时,无需担心目标文件是否存在,若不存在则会自动在内存中…

老Q魔改MACD:拒绝大幅回撤,威力比原版强太多了!

看过老Q历史文章的股友都知道,MACD是一个非常经典且依旧奋战在第一线的顶流指标。我们之前也目前主流通用的参数版本在沪深300上做了回测,17年来获得了累计365%的收益。 然而,整个沪深300大盘在这17年里也涨了超过300%,也就是说,我们的策略也仅仅比拿着不动好上一丢丢而已…

JDK8中的新特性(Lambda、函数式接口、方法引用、Stream)

文章目录 1. Java8新特性:Lambda表达式1.1 关于Java8新特性简介1.2 冗余的匿名内部类1.3 Lambda 及其使用举例1.4 语法1.5 关于类型推断 2. Java8新特性:函数式(Functional)接口2.1 什么是函数式接口2.2 如何理解函数式接口2.3 举例2.4 Java 内置函数式接…

高压功率放大器在换流阀冷却系统均压电极结垢超声导波中的应用

实验名称:换流阀冷却系统均压电极结垢超声导波检测方法研究 研究方向:无损检测 测试目的: 为了探究超声导波检测的灵敏度,本文构建了换流阀冷却系统均压电极结垢检测模型,详细分析了不同厚度水垢与声波信号的交互过…

【c++】哈希---unordered容器+闭散列+开散列

1.unordered系列关联式容器 在C98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到 logN,即最差情况下需要比较红黑树的高度次,当树中的节点非常多时,查询效率也不理想。最好的查询是,进…

FPGA开发基本流程详解

FPGA是一种可编程逻辑器件,与传统的硬连线电路不同,它具有高度的可编程性和灵活性。FPGA的设计方法包括硬件设计和软件设计两部分,硬件设计包括FPGA芯片电路、存储器、输入输出接口电路等等,软件设计则是HDL程序开发,以…

openCV 第四篇 角点检测、图像特征、图片拼接

本文原本打算直接简单介绍一下harris和sift,之后进行特征匹配,来一波图像拼接。 想来想去还是先介绍下原理吧,虽然没人看QAQ。可以直接点击右侧目录跳转到代码区。 本文可以完成: 角点检测 和 图像特征提取(就几行代码) 以及进…

Win32子窗口创建,子窗口回调函数,消息堆栈,逆向定位子窗口消息处理过程

本专栏上一篇文章中我们讲解了Win32程序入口识别,定位回调函数,具体事件处理的定位,这一章节中我们来讲解一下子窗口的创建,子窗口的回调函数,并且逆向分析子窗口消息处理过程。 文章目录 一.子窗口按钮的创建- 创建子…

charge pump的分析与应用

春节前最后一更,提前祝大家新春快乐,阖家安康,工作顺利! 定义: 电荷泵是利用电容的充放电来实现电压的转换的,输入回路和输出回路轮流导通。通过调节占空比来调节输出电压。 它们能使输入电压升高或降低&…

基于PyQt5连接本地SQLite实现简单人力资源管理系统

人力资源管理系统 使用环境:Python3.86 PyQt5.15.4 sqlite3 记录一下最近学校举办的一个程序设计比赛,题目是实现一个简单的人力资源管理系统,文末有效果展示 我认为程序是面向人类而不是面向机器的,所以我使用了PyQt5封装了一…

SpringCloud源码分析 (Eureka-Server-处理客户端续约请求) (七)

文章目录 1.处理客户端续约请求1.1 InstanceResource.renewLease()1.2 InstanceRegistry.renew()1.3 PeerAwareInstanceRegistryImpl.renew()1.4 AbstractInstanceRegistry.renew()1.6 PeerAwareInstanceRegistryImpl.replicateToPeers()1.7 PeerEurekaNode.headbeat() 1.处理客…

大数据Doris(二十二):Rollup物化索引创建与操作

文章目录 Rollup物化索引创建与操作 一、创建测试表 二、创建Rollup物化索引表

岗位少,竞争激烈,这是今年软件测试就业的真实写照,也是所有岗位的真实写照。

前两天跟一个HR朋友聊天,她表示刚在boss上发布了一个普通测试岗位,不到一小时竟然收到了几百份简历。而且简历质量极高,这是往年不敢想象的。岗位少,竞争激烈,这是今年软件测试就业的真实写照,也是所有岗位…