MATLAB实现doc文件的批量改名

2023-11-01

对于一个文件夹中的多个doc文件进行批量改名,下图中是笔者从学生那里收上来的记录表,说了要统一命名也没人听,我又懒得一个个改,只好费点时间编程了。

两种实现的思路,一是从旧文件名中选取特定位置的字符,组成新的文件名,要求文件名有固定的位置,比较有局限性。二是从提前做好的列表中选取文件名,适用性较强。
在这里插入图片描述

第一种思路

如下图所示,原来的文件名是乱七八糟的,唯一的共同之处是最前面是导师的名字,但是也有3个字和2个字的两种,要将两种文件分开处理,分到两个文件夹里。以3个字的名字为例进行说明。

首先是获取现有的文件信息(主要是文件名),有两种方法可以实现,大同小异,各有要求,难以取舍,索性都放在这了。以下代码实现的是对3个字的名字对应的文件信息的读取。
在这里插入图片描述

%% 获取文件信息方法1,前提是路径path中的.doc文件全是待处理的
Path = 'E:\电脑文件\2编程matlab\数据处理程序\批量处理doc文件\doc\3';  % 设置数据存放的文件夹路径
cd(Path);    %把当前工作目录切换到指定文件夹
File = dir(fullfile(Path,'*.docx')); % 显示文件夹下所有符合后缀名的文件的完整信息
oldname = {File.name}';            % 提取符合后缀名的所有文件的文件名,转换为n行1列
n = size(oldname,1); % 文件个数

%%  获取文件信息方法2,前提是文件夹里只有你需要的文件
folder=dir('E:\电脑文件\2编程matlab\数据处理程序\批量处理doc文件\doc\3');
n = length(folder)-2;% 文件个数
oldname=cell(n,1);% 空的元胞数组,放oldname
for ii=3:length(folder)
   oldname{ii-2}=folder(ii).name;
end

在这里插入图片描述
然后是对以上文件的批量改名

%% 批量命名前几个字
newname=cell(n,1);% 空的元胞数组,放oldname
for i =1:n
    newname{i} = [oldname{i}(1:3),'导师组2019级seminar研讨活动记录表',oldname{i}(end-4:end)];%1:3是名字,中间是加的字,最后是.doc后缀
    movefile(oldname{i},newname{i});%将oldname替换为newname
end

在这里插入图片描述

第二种思路

因为所有的文件都有对应的excel名单,为了防止导师名字不在最开始的位置(但是文件名里必须得有),采用以下方法
首先还是读取文件名

%% 获取文件信息方法1,前提是路径path中的.doc文件全是待处理的
Path = 'E:\电脑文件\2编程matlab\数据处理程序\批量处理doc文件\doc';  % 设置数据存放的文件夹路径
cd(Path);    %把当前工作目录切换到指定文件夹
File = dir(fullfile(Path,'*.docx')); % 显示文件夹下所有符合后缀名的文件的完整信息
oldname = {File.name}';            % 提取符合后缀名的所有文件的文件名,转换为n行1列
n = size(oldname,1); % 文件个数

然后读取名单信息,与上面的oldname进行对比,然后替换名字。

% 读取newname
newname = readcell('E:\电脑文件\2编程matlab\数据处理程序\批量处理doc文件\doc\newname.xlsx','sheet','sheet1');%读取工作簿

在这里插入图片描述
新旧名字对比,如果oldname中包含newname,就将oldname替换成对应的newname,可以进行较为灵活的操作。

%% 通过包含关系,用新的名称替换对应的旧名称,即旧名称包含新名称
for i = 1:length(newname)
    for j = 1:length(oldname)
        if findstr(oldname{i},newname{j})%在长串中搜索短串
            movefile(oldname{i},[newname{j},'导师组2019级seminar研讨活动记录表.docx']);% 用后者替换前者
        end
    end
end

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MATLAB实现doc文件的批量改名 的相关文章

  • Microsoft Visual C++ 2008 和 R2007b 的 Mex 类型

    我想对 vs2008 和 matlab2007b 使用 mex 类型 我尝试了下面的代码 include
  • 如何选择部分密集数据集的均匀分布子集?

    P是一个 n d 矩阵 持有nd 维样本 P某些地区的密度是其他地区的几倍 我想选择一个子集P其中任意样本对之间的距离大于d0 并且我需要将其传播到整个区域 所有样本都具有相同的优先级 无需优化任何内容 例如覆盖面积或成对距离之和 这是执行
  • matlab矩阵中求子矩阵的通用方法

    我正在寻找一种 好 方法来在更大的矩阵 任意维数 中找到矩阵 模式 Example total rand 3 4 5 sub total 2 3 1 3 3 4 现在我希望这样的事情发生 loc matrixFind total sub 在
  • 将 3d 矩阵重塑为 2d 矩阵

    我有一个 3d 矩阵 n by m by t 在 MATLAB 中表示n by m一段时间内网格中的测量值 我想要一个二维矩阵 其中空间信息消失了 只有n m随着时间的推移测量t剩下 即 n m by t 我怎样才能做到这一点 你需要命令r
  • 如何获取活动对象 MATLAB GUI 的句柄

    我正在尝试使用 MATLAB GUI 创建日历 我有两个Edit Text对象 edittext1 and edittext2 我想做这个 我把光标放在edittext1然后在日历中选择日期 它会进入文本字段edittext1 同样对于ed
  • 估算缺失数据,同时强制相关系数保持不变

    考虑以下 excel 数据集 m r 2 0 3 3 0 8 4 0 1 3 2 1 5 2 2 3 1 9 2 5 1 2 3 0 2 0 2 6 我的目标是使用以下条件填充缺失值 将上述两列之间的成对相关性表示为 R 大约 0 68 将
  • 如何从绘图处理程序中绘图?

    我有绘图的处理程序或图形的处理程序 例子 h plot 1 0 2 10 xx get h xx DisplayName Annotation 1x1 handle Color 0 0 1 LineStyle LineWidth 0 500
  • 傅里叶变换定理 matlab

    我目前正在尝试理解二维傅里叶位移定理 根据我到目前为止所了解到的情况 图像空间中的平移会导致相位差异 但不会导致频率空间中的幅度差异 我试图用一个小例子来演示这一点 但它只适用于行的移位 而不适用于列的移位 这是一个小演示 我只在这里显示幅
  • python 正弦和余弦精度

    如何提高Python正弦和余弦精度 例如 我想使用以下代码 只需计算随机复向量 x 的 y cos acos x import numpy as np N 100000 x np zeros N 1j np zeros N for k in
  • 优化 MATLAB 代码(嵌套 for 循环计算相似度矩阵)

    我正在 MATLAB 中基于欧几里德距离计算相似度矩阵 我的代码如下 for i 1 N M N is the size of the matrix x for whose elements I am computing similarit
  • 单元格的 Fieldnames 函数的等效项

    正如标题所说 只是想知道是否有一个函数可以用作字段名 http www mathworks co uk help matlab ref fieldnames html 但适用于单元格 所以如果我有类似的东西 a imread redsqua
  • 垂直子图的单一颜色条

    我想让下面的 MATLAB 图有一个沿着两个子图延伸的颜色条 像这样的事情 使用图形编辑器手动完成 Note 这与提出的问题不同here https stackoverflow com questions 39950229 matlab t
  • MATLAB 可执行文件太慢

    我使用以下命令将 MATLAB 程序转换为基于控制台的应用程序deploytool在 MATLAB 中 MATLAB m文件执行大约需要 2 秒 但在我将其转换为可执行文件并调用 exe 执行需要45秒 太长了 我想将 MATLAB 程序与
  • 如何为已编译的 MATLAB 创建安装程序并要求用户接受我们的许可条款?

    我正在 MATLAB 中编写程序分发给 Windows 用户 我使用 MATLAB 编译器和 MATLAB r2014a 版本来创建程序 我可以使用 MATLAB 应用程序编译器创建 Windows 安装程序 并且它的工作效果可以接受 但是
  • 直方图均衡结果

    I am trying to code histogram equalization by my self but the results are different from the built in function in matlab
  • 在 MATLAB 中模拟 C++ 模板

    我试图找出创建 C 模板或 Java 通用对象的替代方案的最佳方法 出于多种不同的原因 我过去曾多次想这样做 但现在我想做的是为几个相关的类创建 saveobj 和 loadobj 函数 我的想法是 我想要一组通用的例程来创建默认结构 然后
  • 如何正确从表中删除 NaN 值

    在 Matlab 中阅读 Excel 电子表格后 不幸的是 我的结果表中包含了 NaN 例如这个 Excel 表格 将产生此表 其中出现额外的 NaN 列 我尝试使用以下代码片段删除 NaN measurementCells readtab
  • 以 2 为底的矩阵对数

    Logm 取矩阵对数 并且log2 取矩阵每个元素以 2 为底的对数 我正在尝试计算冯 诺依曼熵 它涉及以 2 为底的矩阵对数 我该怎么做呢 如果将 以 2 为底 的矩阵指数定义为B expm log 2 A 或者如果您类似地通过特征分解直
  • 在matlab中,如何读取python pickle文件?

    在 python 中 我生成了一个 p 数据文件 pickle dump allData open myallData p wb 现在我想在Matlab中读取myallData p 我的Matlab安装在Windows 8下 其中没有Pyt
  • 如何在 MATLAB 编译的应用程序中运行外部 .m 代码? [复制]

    这个问题在这里已经有答案了 我有一个 MATLAB 项目 我使用 MCC 对其进行编译以获得单个可执行文件 然后我想知道外部程序员是否可以在 exe 中执行他的一些 m 文件 而无需重新编译整个项目 重点是提供一个应用程序 其他开发人员可以

随机推荐

  • IOS开发 生成app图标

    1 一键生成所有尺寸对应的应用图标 链接如下 图标工场 移动应用图标 启动图生成工具 一键生成所有尺寸的应用图标 启动图 2 在Assets中 将图标放在对应的位置 3 在Build Settings中 给app命名 4 Build即可
  • 【华为OD机试c++】最大化控制资源成本【2023 Q1

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 公司创新实验室正在研究如何最小化资源成本 最大化资源利用率 请你设计算法帮他们解决一个任务混部问题 有taskNum项任务 每个任务有开始时间
  • SetFileCompletionNotificationModes FILE_SKIP_COMPLETION_PORT_ON_SUCCESS

    SetFileCompletionNotificationModes function Sets the notification modes for a file handle allowing you to specify how co
  • [git03] 通过pycharm使用git和github的步骤(图文详解)

    一 在Pycharm工具中配置集成Git和GitHub 1 集成Git 打开Pycharm 点击File gt Settins gt Version Control gt Git 然后在 Path to Git executable中选择本
  • Django根据数据库表反向生成models

    1 创建Django项目 创建工程 django admin py startproject movie 创建app python manage py startapp App 在settings py里面添加App INSTALLED A
  • Vue3.0入门 + Vant3.0移动端实践(三)使用Cordova打包Android App

    接着上面两节 把做成的h5小应用打包成android的app放置在手机上看看效果 如何把一个h5应用打包成android的app 使用Cordova就是一种简单不错的办法 当然也有其他的一些办法如使用HBuilderX这一强大的IDE工具
  • VS Code开发常用插件

    VS Code开发常用插件 Chinese Simplified Language 英文菜鸟必备的汉化插件 One Dark Pro个人比较喜欢的一个主题 色调看起来很舒服 Bracket Pair Colerizer加深括号的光标 高亮显
  • Linux服务字符集--locale命令

    在查看Tomcat日志中 会发现中文乱码 乱码的原因就是字符集问题 在 Linux 中 可以使用 locale 命令查看当前系统的字符集 该命令输出当前系统所使用的语言环境信息 包括地域 编码等 执行以下命令 locale 输出结果可能类似
  • 使用Spring Initializer快速创建Spring Boot项目

    默认生成的Spring Boot项目 主程序已经生成好了 resources文件夹中目录结构 static 保存所有的静态资源 templates 保存所有的模板页面 默认不支持JSP页面 可以使用模板引擎 freemarker等 appl
  • github上的文档结构学习

    开源项目目录规范 此为前端开发团队遵循和约定的开源项目目录规范 意在实现开源项目目录结构的一致性 说明 文档中使用的关键字 MUST MUST NOT REQUIRED SHALL SHALL NOT SHOULD SHOULD NOT R
  • RocketMQ发送接收项目实战+对cos或者oss服务上的pdf文件和图片加水印

    使用mq的原因 因为项目中文件上传比较多 需要使用mq分担当前系统线程压力 所以单独使用一个服务来处理文件上传 加快文件上传速度的同时也缓解了当前服务的处理压力 核心服务1 一个项目 发送mq GeneralFileEvent 需要发送给m
  • Qt+gsoap调用WebService

    版权声明 本文为原创作品 请尊重作者的劳动成果 转载必须保持文章完整性 并以超链接形式注明原始作者 tingsking18 和主站点地址 方便其他朋友提问和指正 Qt gsoap调用WebService 1 前言 Qt本身给我们提供了调用W
  • C#系列之ref与out

    目录 1 学习ref与out的原因 2 ref与out的使用 ref的使用 out的使用 3 ref和out的区别 1 学习ref与out的原因 为了解决里面改变外面也改变的问题 使用它们 在函数内部传入的内容里面一旦改变 外面也会跟着改变
  • 连接服务器失败请检查配置文件,连接服务器失败请检查网络

    连接服务器失败请检查网络 内容精选 换一换 当连接目的端服务器失败时 提示 sms 1807 sms 2802 无法连接目的虚拟机 请检查目的虚拟机IP是否可达 或者8899 8900端口是否开放 如下图所示 windows系统迁移时 目的
  • 要做接口并发性能测试,总得先学会分析吧!

    引言 这篇是我3月份在公司内部做的技术分享内容 由于我在公司内部分享的内容较多以及一些特殊性 我摘取了接口并发测试从设计思路整理 测试方案设计 设计分析 代码编写这套流程 我不会承认我把40多页PPT的内容都放在这篇博文里 不管是在内部技术
  • 从零开始制作游戏外挂

    一 什么叫外挂 现在的网络游戏多是基于Internet上客户 服务器模式 服务端程序运行在游戏服务器上 游戏的设计者在其中创造一个庞大的游戏空间 各地的玩 家可以通过运行客户端程序同时登录到游戏中 简单地说 网络游戏实际上就是由游戏开发商提
  • 【专题】我们常用的功能自动化测试工具——Selenium篇

    导语 Selenium也是一个用于Web应用程序测试的工具 Selenium测试直接运行在浏览器中 就像真正的用户在操作一样 支持的浏览器包括IE Mozilla Firefox Mozilla Suite等 这个工具的主要功能包括 测试与
  • 备赛电赛学习硬件篇(二):电源板电路设计

    目录 一 接口 二 稳压部分 三 防反接电路 四 电流与线宽 一 接口 1 输入接口 要准
  • 调试osgEarth(33)分页瓦片卸载器子节点的作用-(3)渲染遍历的帧号和时间设置-TerrainCuller赋值给可渲染图层--TerrainRenderData-Layer

    继续调试 再回顾下Layer类的成员变量 就是说 初始化时调用init 添加到Map上时 setReadOptions gt open gt addedToMap 移除时用removedFromMap 总结下 Layer是个基类 有自己的唯
  • MATLAB实现doc文件的批量改名

    对于一个文件夹中的多个doc文件进行批量改名 下图中是笔者从学生那里收上来的记录表 说了要统一命名也没人听 我又懒得一个个改 只好费点时间编程了 两种实现的思路 一是从旧文件名中选取特定位置的字符 组成新的文件名 要求文件名有固定的位置 比