当前位置: 首页 > news >正文

批量将文件名称符合要求的文件自动复制到新文件夹:Python实现

  本文介绍基于Python语言,读取一个文件夹,并将其中每一个子文件夹符合名称要求文件加以筛选,并将筛选得到的文件复制到另一个目标文件夹中的方法。

  本文的需求是:现在有一个大的文件夹,其中含有多个子文件夹,如下图所示。

  对于其中的每一个子文件夹,都含有大量的文件;例如,我们就打开上图中的2021文件夹,得到结果如下图所示。

image-20231002134201701

  我们的需求是,希望基于每一个子文件夹内的每一个文件,将文件名称中含有指定字段的文件提取出来——在本文中,我们就希望提取得到文件名称中含有STB字段的,也就是上图紫色框内出现STB的文件是我们需要的。提取到全部符合要求的文件后,我们还需要将这些文件都复制到另一个目标文件夹中。

  明确了需求,接下来就可以开始代码的撰写。本文所用到的代码如下所示。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Oct  2 12:48:49 2023@author: fkxxgis
"""import os
import shutilsource_folder = "/media/dell/H30-35/GF_SR"
target_folder = "/media/dell/H30-35/GF_SR/STB"if not os.path.exists(target_folder):os.makedirs(target_folder)year_folders = [f for f in os.listdir(source_folder) if os.path.isdir(os.path.join(source_folder, f))]for year_folder in year_folders:if year_folder == "STB":continueyear_folder_path = os.path.join(source_folder, year_folder)for file_name in os.listdir(year_folder_path):if "STB" in file_name:source_file = os.path.join(year_folder_path, file_name)target_file = os.path.join(target_folder, file_name)shutil.copy(source_file, target_file)

  其中,我们导入了osshutil模块,它们都提供了处理文件和目录的功能;同时,我们定义了源文件夹路径source_folder(也就是存储有多个子文件夹的文件夹路径)和目标文件夹路径target_folder(也就是最终结果存放的路径)。

  随后,我们使用os.makedirs()函数检查目标文件夹是否存在,如果不存在则创建它。接下来,我们使用列表推导式生成一个包含源文件夹中所有子文件夹的列表year_folders;其中,我们使用了os.listdir()函数获取源文件夹中的所有文件和文件夹,并使用os.path.isdir()函数判断是否为文件夹。

  接下来,我们就开始遍历每个子文件夹。首先,需要注意的是,我们要检查当前遍历的子文件夹是否为我们的目标文件夹路径STB;如果是,则跳过该子文件夹的处理——这一步骤是防止我们用来存放结果的目标文件夹也被遍历,否则就会出现文件复制冲突。

  其次,构建当前遍历的子文件夹的完整路径year_folder_path,并使用os.listdir()函数获取子文件夹中的所有文件。随后,再遍历刚刚得到的子文件夹中的每个文件——如果文件名包含STB,那么这个文件就是我们需要的文件;我们就构建源文件(待复制的文件)的完整路径source_file目标文件(预计复制完毕的文件)的完整路径target_file,并紧接着使用shutil.copy()函数将源文件复制到目标文件。

  通过这样的遍历,我们就能够将源文件夹路径source_folder中全部含有STB字段的文件复制到我们的目标文件夹中了。

  执行上述代码,即可在我们的目标文件夹中看到全部含有STB字段的文件,如下图所示。

  至此,大功告成。

欢迎关注:疯狂学习GIS

相关文章:

批量将文件名称符合要求的文件自动复制到新文件夹:Python实现

本文介绍基于Python语言,读取一个文件夹,并将其中每一个子文件夹内符合名称要求的文件加以筛选,并将筛选得到的文件复制到另一个目标文件夹中的方法。 本文的需求是:现在有一个大的文件夹,其中含有多个子文件夹&#x…...

TensorFlow入门(一、环境搭建)

一、下载安装Anaconda 下载地址:http://www.anaconda.comhttp://www.anaconda.com 下载完成后运行exe进行安装 二、下载cuda 下载地址:http://developer.nvidia.com/cuda-downloadshttp://developer.nvidia.com/cuda-downloads 下载完成后运行exe进行安装 安装后winR cmd进…...

90、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Hash 相关命令

本次讲解要点: Hash 相关命令:是指value中的数据类型 启动redis服务器: 打开小黑窗: C:\Users\JH>e: E:>cd E:\install\Redis6.0\Redis-x64-6.0.14\bin E:\install\Redis6.0\Redis-x64-6.0.14\bin>redis-server.exe red…...

我开源了一个加密算法仓库,支持18种算法!登录注册业务可用!

文章目录 仓库地址介绍安装用法SHA512HMACBcryptScryptAESRSAECC 仓库地址 仓库地址:https://github.com/palp1tate/go-crypto-guard 欢迎star和fork! 介绍 此存储库包含用 Go 编写的全面的密码哈希库。该库支持多种哈希算法,它允许可定制…...

FPGA设计时序约束二、输入延时与输出延时

目录 一、背景 二、set_input_delay 2.1 set_input_delay含义 2.2 set_input_delay参数说明 2.3 使用样例 三、set_output_delay 3.1 set_output_delay含义 3.2 set_output_delay参数说明 3.3 使用样例 四、样例工程 4.1 工程代码 4.2 时序报告 五、参考资料 一、…...

电阻的基础与应用

文章目录 电阻的基础与应用电阻的介绍与分类电阻介绍电阻的分类碳膜/金属膜电阻厚膜/薄膜电阻功能性电阻(光敏/热敏/压敏)特殊电阻(绕线电阻/水泥电阻/铝壳电阻) 电阻的主要厂家与介绍国外厂家VISHAY(威世)KOA(兴亚)Kyocera(京瓷)…...

5.html表格

<table><tr><th>列1标题</th><th>列2标题</th><th>列3标题</th></tr><tr><td>行1列1</td><td>行1列2</td><td>行1列3</td></tr><tr><td>行2列1</td>…...

飞桨EasyDL-Mac本地部署离线SDK-Linux集成Python

前言&#xff1a;本文对使用飞桨EasyDL桌面版实现本地部署物体检测做一下说明 一、训练模型 如何使用飞桨EasyDL桌面版这里就不再赘述&#xff0c;直接参照官方文档进行物体检测模型训练。 飞桨EasyDL桌面版-用零代码开发实现物体检测https://ai.baidu.com/ai-doc/EASYDL/Tl2…...

【kubernetes】Kubernetes中的DaemonSet使用

目录 1 为什么需要DaemonSet2 DaemonSet的Yaml的关键字段3 DaemonSet的使用4 一种自行控制Pod更新的方式5 总结 1 为什么需要DaemonSet Deployment可以用于部署无状态的应用&#xff0c;例如系统的接口层或者逻辑层&#xff0c;而多个Pod可以用于负载均衡和容灾。如果有这样一…...

《 新手》web前端(axios)后端(java-springboot)对接简解

文章目录 <font color red>1.何为前后端对接?2.对接中关于http的关键点2.1. 请求方法2.2. 请求参数设置简解&#xff1a; 3.对接中的跨域(CROS)问题**为什么后端处理跨域尽量在业务之前进行&#xff1f;**3.总结 1.何为前后端对接? “前后端对接” 是指前端和后端两个…...

第七章 查找 十、散列查找

一、哈希表&#xff08;散列表&#xff09; 哈希表的数据元素的关键字与其存储地址直接相关。 二、解决冲突的方法 三、散列表中元素的查找 总共对比了3个关键字&#xff0c;所以查找长度为3. 四、查找效率计算 &#xff08;1&#xff09;成功的概率 需要对比一次的关键字为…...

第一章 C语言知识补充

求字节数运算符&#xff1a;sizeof 强制类型转换运算符&#xff1a;&#xff08;类型&#xff09; 下标运算符&#xff1a;[ ] 函数调用运算符&#xff1a;( ) 算术移位指令 算术移位指令有&#xff1a;算术左移SAL和算术右移SAR。算术移位指令的功能描述如下&#xff1a;…...

【Book And Paper 】

【paper Interactive Segmentation of Radiance Fields 算法设计&#xff1a; 电子版...

计算机竞赛 深度学习疲劳检测 驾驶行为检测 - python opencv cnn

文章目录 0 前言1 课题背景2 相关技术2.1 Dlib人脸识别库2.2 疲劳检测算法2.3 YOLOV5算法 3 效果展示3.1 眨眼3.2 打哈欠3.3 使用手机检测3.4 抽烟检测3.5 喝水检测 4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习加…...

代码随想录 动态规划 13

300. 最长递增子序列 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子…...

lv6 嵌入式开发-Flappy bird项目

目录 1 项目功能总结 2 知识储备&#xff1a; 3 项目框图 4 Ncurses库介绍 做Flappy bird项目有什么用&#xff1f; 1. 复习、巩固c语言知识 2. 培养做项目的逻辑思维能力 3. 具备开发简单小游戏的能力 学会了Flappy bird项目&#xff0c;贪吃蛇和推房子两款小游戏也可…...

【Java】方法重写

概述 子类中出现了和父类一模一样的方法 当子类需要父类的功能&#xff0c;而功能主体中&#xff0c;子类有自己独特的内容&#xff0c;就可以通过重写父类中的方法&#xff0c;这样即延续了父类的功能&#xff0c;又定义了自己的特有内容 Override 是一个注解&#xff0c;可以…...

艺术表现形式

abstract expressionism 抽象表现主义 20世纪中期的一种艺术运动&#xff0c;包括多种风格和技巧&#xff0c;特别强调艺术家通过非传统和通常非具象的手段表达态度和情感的自由。 抽象表现主义用有力的笔触和滴落的颜料来表达情感和自发性。 简单地结合“abstract expression…...

PHP 反序列化漏洞:手写序列化文本

文章目录 参考环境序列化文本Scalar Type整数浮点数布尔值字符串 Compound Type数组数据结构序列化文本 对象数据结构序列化文本 Special TypeNULL数据结构序列化文本 手写序列化文本过程中的注意事项个数描述须于现实相符序列化文本前缀的大小写变化符号公共属性 参考 项目描…...

react.js在visual code 下的hello World

想学习reacr.js &#xff0c;就开始做一个hello world。 我的环境是visual code &#xff0c;所以我找这个环境下的例子。参照&#xff1a; https://code.visualstudio.com/docs/nodejs/reactjs-tutorial 要学习react.js &#xff0c;还得先安装node.js&#xff0c;我在visual …...

UnityExplorer终极调试指南:如何用游戏内UI工具提升开发效率

UnityExplorer终极调试指南&#xff1a;如何用游戏内UI工具提升开发效率 【免费下载链接】UnityExplorer An in-game UI for exploring, debugging and modifying IL2CPP and Mono Unity games. 项目地址: https://gitcode.com/gh_mirrors/un/UnityExplorer UnityExplor…...

JHenTai:5大核心功能打造你的全平台漫画阅读体验

JHenTai&#xff1a;5大核心功能打造你的全平台漫画阅读体验 【免费下载链接】JHenTai A cross-platform manga app made for e-hentai & exhentai by Flutter 项目地址: https://gitcode.com/gh_mirrors/jh/JHenTai 在数字阅读时代&#xff0c;寻找一款既能在手机上…...

Linux系统服务“窃听”与“喊话”:dbus-monitor/dbus-send实战指南(以systemd-logind为例)

Linux系统服务的“窃听”与“喊话”&#xff1a;dbus-monitor/dbus-send高阶实战指南当你坐在咖啡馆里&#xff0c;周围此起彼伏的对话声中&#xff0c;偶尔会捕捉到一些有趣的片段——这正是dbus-monitor在Linux系统中的角色。而当你需要主动与某人交流时&#xff0c;清晰明确…...

5分钟掌握qmcdump:解锁QQ音乐加密音频的终极指南

5分钟掌握qmcdump&#xff1a;解锁QQ音乐加密音频的终极指南 【免费下载链接】qmcdump 一个简单的QQ音乐解码&#xff08;qmcflac/qmc0/qmc3 转 flac/mp3&#xff09;&#xff0c;仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 你是否曾经…...

Applite:3分钟搞定macOS应用管理的终极图形化解决方案

Applite&#xff1a;3分钟搞定macOS应用管理的终极图形化解决方案 【免费下载链接】Applite User-friendly GUI macOS application for Homebrew Casks 项目地址: https://gitcode.com/gh_mirrors/ap/Applite 还在为macOS上的软件安装和管理头疼吗&#xff1f;每次都要打…...

[智能体-26]:ollama, 让模型的部署和提供服务(远程或本地)变得异常简单

极简一键部署&#xff0c;自动封装OpenAI 标准 API&#xff0c;本地 / 远程服务秒启用&#xff0c;无需复杂环境编译、配置端口、适配接口。核心亮点安装零门槛跨 Windows/Mac/Linux&#xff0c;一键安装包&#xff0c;无需 CUDA、Python 环境预处理。模型一键拉取运行bash运行…...

混沌系统预测极限:稀疏观测、数据同化与混沌同步的信息门槛

1. 项目概述&#xff1a;从稀疏观测中预测混沌 在天气预报、湍流模拟乃至金融系统分析中&#xff0c;我们常常面临一个核心难题&#xff1a;如何利用有限、稀疏且带有噪声的观测数据&#xff0c;去准确预测一个高维、非线性的混沌系统未来的演化&#xff1f;这就像试图通过几个…...

经典通信赋能分布式量子机器学习:NISQ时代的实用化路径探索

1. 项目概述&#xff1a;当量子机器学习遇上分布式架构量子机器学习&#xff08;QML&#xff09;这几年火得不行&#xff0c;它背后的逻辑其实挺吸引人的&#xff1a;利用量子态的叠加和纠缠特性&#xff0c;把数据映射到指数级庞大的希尔伯特空间里进行处理。理论上&#xff0…...

分布式机器学习中的精度与效率权衡:从近似计算到自动驾驶实践

1. 项目概述&#xff1a;当“算得准”遇上“算得快”在分布式机器学习的世界里&#xff0c;我们每天都在面对一个看似简单、实则深刻的抉择&#xff1a;是要一个“算得准”但慢吞吞的模型&#xff0c;还是要一个“算得快”但偶尔会出点小错的系统&#xff1f;这个抉择&#xff…...

汽车电子系统中GIC-600AE与CMN-600AE互连的安全机制解析

1. CMN-600AE与GIC-600AE互连机制解析在汽车电子系统中&#xff0c;CoreLink GIC-600AE中断控制器与CMN-600AE互连网络的协同工作对实现功能安全至关重要。这两个IP核的配合使用需要特别关注消息路由机制和保护方案的兼容性。GIC-600AE内部组件&#xff08;如ITS中断转换服务和…...