MATLAB如何批量更改文件名

在openfoam中,由于timePrecision设置的不合理,常常导致计算得到的文件夹名称的数字末尾多很多零,对于读取数据来说十分的不方便。
如何更改为标准的,精确的,writeInterval的整数倍名称,需要一下三步操作。

1、得到整个文件夹内的所有文件名称

clear;clc
fileName = "文件路径";
files = dir(fullfile(fileName));
size_row = size(files);
folder_num = size_row(1);
num = 1007;
a = zeros(num,1);
aa = strings (num,1);
% aa = zeros(folder_num,1);
for i=3:num%folder_num
    aa(i) = files(i,1).name;
    a(i) = str2double(files(i,1).name);
end

aa(1:3) =  [];
a(1:3) =  [];

[c d] = sort(a(:));
file_name_id = aa(d);
% t_f = 0.4601;
save('XX_ID.mat','file_name_id')

2、使用脚本批量修改文件名

%% write by rqli
%% calc Nu at Ra = 1e7 Re = 1e3.75 f = 0.01  ; non-uniform mesh
%% fileNum_start = 0
clc;clear all
format long
load('XX_ID.mat')
%%
t_f = 0.4086;
h =  0.110065831237822;H = h*2;
gridNumX = 384;gridNumY = 256;gridNumZ = 192;
filename = '文件路径';
fileNum_start = 454;fileNum_end = 454;%751;
fileNum_length = fileNum_end - fileNum_start+1;

%%
nu = 1.58e-5;g = 9.81;beta = 3.36e-3;delta_T = 10;T0 = 300;Pr = 0.71;
U0 = sqrt(g*beta*delta_T*H);Ra = g*beta*delta_T*Pr*H^3/(nu^2);

%%
for fileNum =fileNum_start:1:fileNum_end
    if(mod(fileNum,10)==0)
        disp(['current data is',num2str(fileNum)]);
    end
    fpatch = strcat(filename,file_name_id(fileNum));
    id = round(str2num(file_name_id(fileNum))/t_f)*t_f;
%     a(fileNum - fileNum_start+1) = id-fileNum;
    str_command = strcat('mv',{32},file_name_id(fileNum),{32},num2str(id));
    disp(str_command)
%     str_command = strcat('mkdir',{32},fpatch);
%     str_command = strcat('rm',{32},'-rf',{32},fpatch); 
    system(str_command); %其中cmd为shell命令
end

注意,上面的操作需要在算例文件夹路径下运行。

3、验证修改文件是否正确

这个就很简单了,不放代码了,原因是没有单独写代码。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值