MATLAB 批量移动 TIF 文件至分类文件夹

文章目录

  • 前言
  • 一、步骤
  • 二、代码


前言

本代码用于从指定的源文件夹 (sourceFolder) 中筛选所有 .tif 文件,并根据文件名的特定关键词(Daynight 和 FDI)将其分类移动到相应的目标文件夹 (targetDaynightFolder 和 targetFDIFolder)。


一、步骤

主要步骤如下:

定义源文件夹和目标文件夹:确保目标文件夹存在,不存在则创建。获取所有 .tif 文件:扫描源文件夹,提取所有 .tif 格式的文件。文件分类移动:若文件名包含 Daynight,则移动至 targetDaynightFolder 目录。若文件名包含 FDI,则移动至 targetFDIFolder 目录。执行完成提示:程序运行完毕后,显示“所有文件已移动完成!”的提示信息。

注:代码中包含一段被注释掉的旧版本,该版本原本是按年份子文件夹筛选 .tif 文件再进行分类,而当前版本已简化为直接遍历源文件夹下的所有 .tif 文件,提高了效率。

二、代码

lc; clear; close all;% 定义源文件夹(包含所有 tif 文件)
sourceFolder = 'CSV\sum\day\';% 定义目标文件夹
targetDaynightFolder = '\daynight';
targetFDIFolder = '\FDI';% 确保目标文件夹存在,如果不存在则创建
if ~exist(targetDaynightFolder, 'dir')mkdir(targetDaynightFolder);
end
if ~exist(targetFDIFolder, 'dir')mkdir(targetFDIFolder);
end% 获取 sourceFolder 目录下的所有 tif 文件
tifFiles = dir(fullfile(sourceFolder, '*.tif'));% 遍历所有 tif 文件
for j = 1:length(tifFiles)filePath = fullfile(sourceFolder, tifFiles(j).name); % 当前文件路径% 判断是 Daynight 还是 FDI 文件if contains(tifFiles(j).name, 'Daynight', 'IgnoreCase', true)movefile(filePath, fullfile(targetDaynightFolder, tifFiles(j).name));elseif contains(tifFiles(j).name, 'FDI', 'IgnoreCase', true)movefile(filePath, fullfile(targetFDIFolder, tifFiles(j).name));end
enddisp('所有文件已移动完成!');% % 定义源文件夹(包含2000-2021年的子文件夹)
% sourceFolder = '\sum\day\';
% 
% % 定义目标文件夹
% targetDaynightFolder = '\daynight';
% targetFDIFolder = '\FDI';
% 
% % 确保目标文件夹存在,如果不存在则创建
% if ~exist(targetDaynightFolder, 'dir')
%     mkdir(targetDaynightFolder);
% end
% if ~exist(targetFDIFolder, 'dir')
%     mkdir(targetFDIFolder);
% end
% 
% % 获取所有年份文件夹
% yearFolders = dir(sourceFolder);
% yearFolders = yearFolders([yearFolders.isdir]); % 仅保留文件夹
% yearFolders = yearFolders(~ismember({yearFolders.name}, {'.', '..'})); % 去除无效目录
% 
% % 遍历每个年份文件夹
% for i = 1:length(yearFolders)
%     yearPath = fullfile(sourceFolder, yearFolders(i).name); % 该年份的完整路径
%     
%     % 获取该文件夹下的所有 tif 文件
%     tifFiles = dir(fullfile(yearPath, '*.tif'));
%     
%     % 遍历所有 tif 文件
%     for j = 1:length(tifFiles)
%         filePath = fullfile(yearPath, tifFiles(j).name); % 当前文件路径
%         
%         % 判断是 Daynight 还是 FDI 文件
%         if contains(tifFiles(j).name, 'Daynight', 'IgnoreCase', true)
%             movefile(filePath, fullfile(targetDaynightFolder, tifFiles(j).name));
%         elseif contains(tifFiles(j).name, 'FDI', 'IgnoreCase', true)
%             movefile(filePath, fullfile(targetFDIFolder, tifFiles(j).name));
%         end
%     end
% end
% 
% disp('所有文件已移动完成!');

在这里插入图片描述

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

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

相关文章

重温Ubuntu 24.04 LTS

用户调整 # 创建新用户 sudo adduser newusername # 设置新用户的密码 sudo passwd newusername # 将新用户添加到 sudo 组 sudo usermod -aG sudo newusername # 修改ssh访问权限 sudo nano /etc/ssh/sshd_config # 将新用户加入,此时root将无法访问 AllowUsers n…

AWS Lambda 集成更新详解:打造无缝云函数体验

引言 AWS Lambda 作为一种无服务器计算服务,让开发者能够运行代码而无需配置或管理服务器。随着 AWS 不断优化其服务,Lambda 的集成方式也在不断更新和改进。本文将深入探讨 Lambda 的最新集成选项,帮助您充分利用这一强大的无服务器计算平台。 Lambda 集成类型概述 从图…

基于Kubernetes部署Prometheus监控平台

#作者:stackofumbrella 文章目录 prometheus和k8s集群版本对照表架构Prometheus Operator简介kube-prometheus下载地址 安装修改镜像地址修改Prometheus的service修改Grafana的service修改Alertmanager的service数据持久化执行安装 Prometheus验证Grafana验证解决C…

Android之uCrop (裁剪) 的基本使用资料

Android 拍照、选择图片并裁剪 uCrop裁剪 uCrop裁剪2 uCrop裁剪3 1.权限检查 private static final int REQUEST_CAMERA_PERMISSION 333; private void requestCameraPermission() {if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA)! …

STM32基础教程——输入捕获模式测量PWM频率

目录 前言 技术实现 原理图 连线图 代码实现 内容要点 PWM基本结构 开启外设时钟 配置GPIO端口 配置时基单元 初始化输出比较单元 输出比较通道重映射 输入捕获功能初始化 计算捕获PWM的频率 实验结果 问题记录 前言 IC(Input Capture)输…

基于网启PXE服务器的批量定制系统平台(详细版)

项目说明 该项目共分为2个子项目,由iventoy和定制安装两部分组成 该项目旨在复习巩固系统服务部署使用、shell编程等知识,旨在让学生增加知识面,提高项目实习经历,充实简历 项目背景: 公司新购了一批服务器和台式机…

旅游CMS选型:WordPress、Joomla与Drupal对比

内容概要 在旅游行业数字化转型进程中,内容管理系统(CMS)的选择直接影响网站运营效率与用户体验。WordPress、Joomla和Drupal作为全球主流的开源CMS平台,其功能特性与行业适配性存在显著差异。本文将从旅游企业核心需求出发&…

el-table下的复选框关联勾选

效果展示&#xff1a; <el-table style"height: 500px;" :data"tableData" border empty-text"暂无数据" v-loading"loading":header-cell-style"{ text-align: center }" :cell-style"{ text-align: center }"…

解决Cubemx生产的 .ioc文件不能外部打开的方法

正常来说&#xff0c;cubemx生成的文件会有图标 但是当图标白色的时候&#xff0c;无法通过直接点击这个文件进入cubemx 1.首先检查java环境是不是装的JAVA8&#xff0c;如果是的话进行第二步操作&#xff1b; 2.重新安装一次cubemx&#xff0c;在安装的时候选择为我安装&…

从零构建大语言模型全栈开发指南:第三部分:训练与优化技术-3.1.3分布式数据加载与并行处理(PyTorch DataLoader优化)

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 3.1.3 分布式数据加载与并行处理(`PyTorch DataLoader`优化)1. 大规模数据加载的挑战与瓶颈分析1.1 数据加载流程的时间分解2. PyTorch DataLoader的深度优化策略2.1 核心参数调优2.2 分布式数据分片策…

K8S学习之基础五十七:部署代码扫描工具sonarqube

部署代码扫描工具sonarqube 拉取postgres、sonarqube镜像&#xff0c;在harbor上创建postgres、sonarqube项目&#xff0c;将镜像上传至harbordocker pull postgres docker pull sonarqube docker tat postgres:latest 172.16.80.140/postgres/postgres:latest docker tat sona…

RAG技术的进化:RQ-RAG查询优化/化繁为简Adaptive-RAG智能分类/精准出击

嘿,亲爱的算法探险家们!欢迎来到RAG技术的“奇幻冒险”之旅!🎢 今天,咱们要一起探索的是如何让大语言模型(LLM)从“呆萌小学生”进化成“机智博士生”的奇妙旅程! 想象一下,你正在和一个超级聪明的AI聊天,但它有时候会像个小迷糊,回答得让你哭笑不得。这时候,RAG…

11:00开始面试,11:08就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到8月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

渗透测试中发现ak/sk泄露时的验证工具

项目地址&#xff1a;https://github.com/libaibaia/cloudsec启动命令&#xff1a;java -jar cloudSec-1.2.2-SNAPSHOT.jar 访问&#xff1a;http://localhost:8000/#/admin/login 默认用户名密码&#xff1a;admin/admin123 注&#xff1a;8000 端口运行&#xff0c;如占用先…

【蓝桥杯】重点冲刺

【最高优先级】必考核心算法(占分60%以上) 动态规划(DP) 🌟🌟🌟 背包问题:01背包、完全背包(必须掌握空间优化的一维写法) 线性DP:最长上升子序列(LIS)、最长公共子序列(LCS) 路径问题:网格路径计数(含障碍物)、最小路径和 经典模型:打家劫舍、股票买卖问…

蓝桥杯python编程每日刷题 day 20

题目&#xff1a; 给定一个长度为 N 的整数序列&#xff1a;A1, A2, , AN。现在你有一次机会&#xff0c;将其中连续的 K 个数修改成任意一个相同值。请你计算如何修改可以使修改后的数列的最长不下降子序列最长&#xff0c;请输出这个最长的长度。 最长不下降子序列是指…

游戏引擎学习第185天

回顾并计划今天的内容 我们完成了开始整理这些数据的工作&#xff0c;但我们还没有机会真正去查看这些数据的具体内容&#xff0c;因为我们只是刚刚开始了数据整理的基本工作。我们收集了大量的信息&#xff0c;但到目前为止&#xff0c;仍然没有足够的可视化工具来帮助我们理…

协议学习——1 NCDSSB

上次面试NCDssb, 今天特意学习下&#xff0c;除了物理层的定义&#xff0c;其实再很多物理层的书上都有&#xff0c;主要是讲下RRC曾怎么玩的。 配置在专用BWP上配置&#xff0c;切实BWP的专用部分

pom.xml与.yml,java配置参数传递

pom.xml与 .yml java配置参数传递 在Java项目中&#xff0c;通过 pom.xml 和 .yml 文件&#xff08;如 application.yml&#xff09;传递变量通常涉及 构建时&#xff08;Maven&#xff09;和 运行时&#xff08;Spring Boot&#xff09;两个阶段的配置。以下是具体的实现方法&…

【解决】:VSCode 中识别不到电脑中的已安装的 Git

# 问题 自己电脑中明明已经安装了 git &#xff0c;但在 vscode 中确识别不到。——————————&#xff08;问题一样就看下去&#xff0c;不一样早早润。省流&#xff01;&#xff01;&#xff01;&#xff01;&#x1f680;&#xff09; # 【第一步】首先要确认你电脑中…