首页 > 编程语言 >以多个文件的名称为基准复制其他路径下的同名文件:Python实现

以多个文件的名称为基准复制其他路径下的同名文件:Python实现

时间:2023-11-08 22:02:47浏览次数:45  
标签:文件 Python 同名 source 文件夹 file path os

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

  首先,我们来明确一下本文的具体需求。现有一个文件夹,其中有大量的Excel表格文件(在本文中我们就以csv格式的文件为例)——这一文件夹中的文件其实也就是我们通过文章Python筛选多个Excel中数据缺失程度最少的文件筛选得到的文件;如下图所示。

  此外,我们还有一个文件夹(我们将其称作大文件夹),其中存放了较之上图所示的文件夹中,更多的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文件夹中的文件数量是一致的。

  至此,大功告成。

标签:文件,Python,同名,source,文件夹,file,path,os
From: https://blog.51cto.com/fkxxgis/8260135

相关文章

  • Python如何将日志输入到文件里
    要将日志输出到文件中,你可以使用Python标准库的`logging`模块。以下是一个示例,演示如何配置`logging`模块来记录日志到文件:```pythonimportlogging#配置日志log_file='/path/to/your/logfile.log'logging.basicConfig(  filename=log_file,  level=logging.DEBU......
  • Linux tail命令:显示文件结尾的内容
    tail命令和head命令正好相反,它用来查看文件末尾的数据,其基本格式如下:[root@localhost~]#tail[选项]文件名此命令常用的选项及含义【例1】查看/etc/passwd文件最后3行的数据内容。[root@localhost~]#tail-n3/etc/passwdsshd:x:74:74:Privilege-separatedSSH:/var......
  • nginx做文件服务器时使用第三方系统做认证
    我们在项目中做文件下载时,一般会使用nginx做文件下载服务器,但是一旦暴露了下载链接,其他人就随意下载文件,有安全风险。其实我们可以使用Nginx的auth_request模块,nginx在接到下载请求时,将请求转发到我们自己的项目中,我们项目提供一个接口来做认证,认证通过返回nginx200,否则返回......
  • Python 数据库应用教程:安装 MySQL 及使用 MySQL Connector
    Python可以用于数据库应用程序。其中最流行的数据库之一是MySQL。MySQL数据库为了能够在本教程中尝试代码示例,您应该在计算机上安装MySQL。您可以在MySQL官方网站下载MySQL数据库。安装MySQL驱动程序Python需要一个MySQL驱动程序来访问MySQL数据库。在本教程中,我们将使用......
  • idea如何运行php文件
    在IntelliJIDEA中运行PHP文件需要一些配置和插件的支持,因为IDEA主要是为Java开发而设计的。以下是一些步骤来运行PHP文件:1.安装插件:首先,你需要安装一个支持PHP的插件。在IntelliJIDEA中,你可以使用插件来扩展其功能。你可以通过以下步骤安装PHP插件:2.打开Inte......
  • 今天运行sql文件时报错问题分析
    [SQL]Querysupermarketstart[ERR]1046-Nodatabaseselected[ERR]--�����û���createtableadmin(idintnotnullauto_increment,usernamevarchar(20)notnull,passwordvarchar(50)null,constraintuser_pkprimarykey(id))comment'ϵͳ�û�......
  • 各种文件格式解释
    皮肤诊断系统常文件格式.name:通常用于标识个人名称或组织。它可能是一个文本文件,包含有关个人或组织的详细信息。.xml:是可扩展标记语言(ExtensibleMarkupLanguage)的扩展名。XML是一种用于存储和传输数据的标记语言,被广泛用于网页设计、数据存储和交换等。.iml:是IntelliJIDEA项......
  • 如何将我的Java程序转换为.exe文件?
    内容来自DOChttps://q.houxu6.top/?s=如何将我的Java程序转换为.exe文件?如果我有一个Java源文件(*.java)或一个类文件(*.class),我如何将其转换为一个.exe文件?我还需要一个程序的安装程序。javapackagerJavaPackager工具用于编译、打包和准备Java和JavaFX应用程序进行分发。......
  • java 获取resources下文件的路径 使用 ClassLoader类 获取路径,使用流的方式读取
    java获取resources下文件的路径使用ClassLoader类,使用流的方式读取Java获取resources下文件的路径在Java开发中,我们经常需要读取resources目录下的文件,例如配置文件、模板文件等。本文将介绍如何获取resources下文件的路径,并提供相应的代码示例。1.resources目录在Java项......
  • python循环遍历字典: title_content_list.append([key, value])print(ti
    示例示例Python循环遍历字典的方法有以下几种:使用for...in循环:Python循环遍历字典的方法有以下几种:1.使用for...in循环:pythondict={'name':'Tom','age':20,'gender':'male'}#遍历所有的键forkeyindict:print(key)#遍历所有的值forvalueindict.values......