班级工作小工具

这是个会不断更新的合集,如果够多考虑开专栏。不是计算机专业,业余爱好。工具主要局限于:python、matlab,labview。杀鸡也可以用用牛刀。

批量生成文件夹

简介:用于整理每人的材料,支持依据花名册生成文件夹。
工具:Matlab

clc;clear;
filePath = 'C:\data.xlsx';
Goal = 'C:\Users\Administrator\Desktop\Work'
txt = readtable(filePath,'Range','A:A','ReadVariableNames',false);
txt = table2array(txt);
num = length(txt);
 for i = 1:num 
     goal = [Goal,'\',txt{i}] 
     mkdir(goal);
     %disp(goal)
 end

Goal :所要建立文件夹的父文件夹
filePath :花名册文件路径

还可以在父文件夹利用命令行 :“ tree /f ” 来同时检查所有文件夹下文件情况。

批量给图片文件按类型重命名

简介:用于整理每人的截图文件,支持依据标签重命名。
工具:Matlab
  书接上回,我们还可以对收集来的图片文件进行按照类型进行重命名。先在FilePath语句中添加目标文件夹,然后程序会读取各人名子文件中的所有图片文件[^1],并将其显示从左至右进行显示。我们只需要在tag语句中定义所含有的图片类型,然后在命令行中输入对应图片的顺序数列来对图片进行重命名。
  例如:
请添加图片描述
在这里插入图片描述
  这里仅显示两种图片类型;实际上的工作逻辑为,必须有12,3为可选类型。所以这里程序的逻辑也是如此:如果图片为2,则显示两种类型。如果为3,则加入可选类型。

  本设计还有许多问题需要改进,或者说这个工具有一定局限性:
1.只支持图片;2.标签显示的逻辑不全面;3.没有中断操作;4.不支持jpeg(这个问题如果在实际工作中遇到了会回来改进)

%%初始化
clc;clear;
tag = {'行程卡','健康码','承诺书'};
FilePath = 'C:\Users\Administrator\Desktop\返校材料截图';
showtext =[];

%%获得数据文件夹目录
File = dir(FilePath); 
namedata = {File.name};namedata(1)=[];namedata(1)=[];totalnum = length(namedata);

%%到个人文件夹进行操作
for a = 1:totalnum
    nowloca = [FilePath,'\',namedata{a}];
    File = dir(nowloca);
    picdata = {File.name};picdata(1)=[];picdata(1)=[];num = length(picdata);
    
    %%显示图片
    for i = 1:num
        picloca = [nowloca,'\',picdata{i}];
        pic = imread(picloca); subplot(1,num,i);imshow(pic)
        showtext = strcat(showtext,tag{i},'//');
    end
    
    %%打标
    showtext = strcat(showtext,'输入序号:');
    text(1,4,namedata{a},'FontSize',14);
    sort = num2str(input(showtext));
    close all
    showtext =[];
    
    %%文件重命名操作
    for i = 1:num
       picloca = [nowloca,'\',picdata{i}];
       newname = strcat(nowloca,'\',namedata{a},tag{str2num(sort(i))},picloca(end-3:end));
       % disp(picloca) %disp(newname)
       movefile(picloca,newname); 
    end
    
end

  新文件的名称将以子文件夹名+图片类型名构成;比如 /小明/小明健康码.jpg
  总结:本工具很好地忽视了通用性,以能解决手头问题为主要目的。欢迎大家根据自身情况DIY。

猜你喜欢

转载自blog.csdn.net/qq_49003248/article/details/123361761