基于标准文件夹中各文件的名称复制另一文件夹的同名文件:Python

本文介绍基于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

相关文章

Python中如何复制列表

我们怎么复制一个列表呢,我们来看看下面代码list_test = [1, 2, 3]copy_list = list_test # 这只是引用,指向同一个内存地址copy_list[0] = 99pr...

python入门012:复制列表

一、复制列表复制列表即根据既有列表创建新的列表。1、切片复制我们可以通过创建一个包含原列表所有元素的切片,从而实现复制列表。方法是,切片区间同时省略元素的起始索引和终止索引,即[:],也就是创建一个初...

python学习——021列表里复制和引用的区别

Python 里列表复制和列表引用的区别,下面通过示例来详细分析:列表复制list_a = ['a', 'b', 'c'] list_b = list...

Python文件操作基础指南

以下是一份详细的 Python 基础文件操作指南,包含常见操作和示例代码:一、文件操作基本流程打开文件 → 2. 操作文件 → 3. 关闭文件二、打开文件使用 open() 函数:python复制fi...

Python目录与文件操作教程

大家好,我是ICodeWR。今天要记录的是 如何使用Python进行常见的目录和文件操作。Python提供了强大的内置模块来处理文件和目录操作。1. 基本模块介绍Python中主要使用以下模块进行文件...

python组织和管理代码:模块和包、子模块和子包概念及举例

在Python中,模块和包是组织和管理代码的重要概念。同时,模块和包可以包含子模块和子包。下面我将为你详细解释这些概念。模块和包、子模块和子包的概念模块:模块是一个包含 Python 代码的文件,它可...