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

福田网站建设龙岗网站建设深圳网站建设服务

福田网站建设龙岗网站建设,深圳网站建设服务,c 可以做网站,邢台做wap网站的地方1 序言 在进行数据处理时,经常需要写代码对保存在文件中的数据进行读取→处理→保存的操作,流程图如下: 笔者每次在进行上述操作时,都需要百度如何“选中目标文件”以及如何“将处理好的数据保存到目标文件中”,对这一…

1 序言

在进行数据处理时,经常需要写代码对保存在文件中的数据进行读取→处理→保存的操作,流程图如下:

笔者每次在进行上述操作时,都需要百度如何“选中目标文件”以及如何“将处理好的数据保存到目标文件中”,对这一块的知识点的掌握不够系统化。为了以后减少百度的次数,故对选中目标文件和保存到目标文件这两个步骤进行了梳理。

2 选中目标文件&数据读取

选中目标文件和数据读取是连在一起的,它们合在一起的意思是读取存放在目标文件里目标位置的数据。数据读取没有太多可讲的,选择目标文件后,只要已知数据存放在文件里的位置以及类型即可读取对应的数据。

选中目标文件需要已知目标文件存放的路径(下文简称文件路径)和目标文件的名称(文件名称),一般会有如下4个场景:

  1. 文件路径未知,文件名未知;
  2. 文件路径未知,文件名已知;
  3. 文件路径已知,文件名未知;
  4. 文件路径已知,文件名已知。

下面对上述四个场景的实现方法进行详细介绍。

2.1 文件路径未知,文件名未知

这种场景的实现方法是直接采用弹框的形式,当程序运行后在弹框界面人为打开文件路径,然后在文件路径下选中目标文件。关键函数为uigetfile,用法如下:

[file,path,indx] = uigetfile(filter)

输出参数意义如下:
file—返回的文件名;
path—返回的文件路径;
indx—返回的在对话框中选择的筛选器的索引。

输入参数意义如下:
filter—指定文件扩展名,根据该扩展名筛选对话框中显示的文件。

实现“文件路径未知,文件名未知”的代码如下:

clear
close all
clc
%--------存放的路径未知,文件名未知
[name,path,index] =  uigetfile('*') %选择目标文件,*表示可以选择所有格式的文件
data = csvread(fullfile(path,name)); %读取目标文件中的数据

运行效果如下:

选中目标文件'data.csv',然后点击打开即可读取目标文件中的数据。

2.2 文件路径未知,文件名已知;

这种场景的实现方法是直接采用弹框的形式,当程序运行后在弹框界面人为选中目标文件存放的路径。关键函数为uigetdir,用法如下:

selpath = uigetdir(path)

输入参数的意义:

path为初始路径,当path为空时,弹框打开的是当前文件路径;

输出参数的意义:

selpath为选择的路径。

实现“文件路径未知,文件名已知”的代码如下:

clear
close all
clc
%--------存放的路径未知,文件名已知
path = uigetdir()  %选择文件要存放的文件夹路径
name = 'data.csv'; %文件名
data = csvread(fullfile(path,name)); %读取数据

运行效果如下:

选中目标文件存放的路径'my_test',然后点击打开即可读取到目标文件中的数据。

2.3 文件路径已知,文件名未知

这种场景和“文件路径未知,文件名未知”相似,只需要弹框打开已知的文件路径,然后人为选中目标文件即可,关键函数也是uigetfile。

实现代码如下:

close all
clc
%--------文件路径已知,文件名未知
path = ''/Users/Desktop/matlab_code/folder_test/my_test'; %存放目标文件的路径
name =  uigetfile('*','',path); %从文件路径下的所有文件选择目标文件
data = csvread(fullfile(path,name)); %读取数据

运行效果和场景“文件路径未知,文件名未知”相似,只是这个直接弹框出来的就是文件路径,如下:

选中目标文件'data.csv',然后点击打开即可读取目标文件中的数据。

2.4 文件路径已知,文件名已知

这种场景实现比较简单,直接将文件路径和文件名写死即可。

clear
close all
clc
%--------存放的路径已知,文件名已知
path = '/Users/Desktop/matlab_code/folder_test/my_test'; %存放目标文件的路径
name = 'my_test.csv'; %文件名
data = csvread(fullfile(path,name)); %读取数据

3 保存到目标文件 

待数据处理完成后,需要将数据保存下来,一般会有两种场景:

① 将处理好的数据保存到原来的目标文件中,覆盖原始数据;

② 新建一个文件,将处理好的数据保存到新的文件中,原始目标文件不变。

场景①的实现代码如下:

%------将修改好的数据保存在原始文件里面
system('tskill excel'); %关闭所有打开的Excel文件
csvwrite(fullfile(path,name),data);%保存到原始文件里面

其中data为修改好的数据。由于读取时打开可目标文件,需要先关闭Excel文件,再写入到原始目标文件里,否则会报错。

场景②的实现代码如下:

%-------将修改好的数据保存到新的文件夹里
path_new = fullfile(path,'new'); %新生成的数据包存放路径if ~exist(path_new)mkdir(path_new); %不存在文件名为new的文件夹,则新建一个end
csvwrite(fullfile(path_new,name),data);

其中data为修改好的数据。先在文件路径下新建一个名为‘new'的文件夹,再将数据保存到新建的文件夹里。

4 批量读取和保存

批量读取和保存的关键点是获取到所有目标文件的文件名,然后通过一个循环进行批量操作。关键函数是dir,用法如下:

dir()函数的调用方式有三种,分别为:
1、dir(’.’) 列出当前目录下所有子文件夹和文件;
2、dir(‘E:\Matlab’) 列出指定目录下所有子文件夹和文件;
3、dir(E:\Matlab,’*.csv’) 列出指定目录下后缀为.csv的文件。

批量操作的实现代码如下:

clear
close all
clc
path = uigetdir();  %选择文件存放的文件夹路径
excel_files = dir(fullfile(path,'*.csv')); %获取所有后缀是.csv的文件名,如果是’*‘则是获取所有格式的文件名
folder_nums = size(excel_files,1);% 文件夹里csv文件数
for i=1:folder_nums     %获取所有文件夹名excel_file_names{i} = excel_files(i,1).name;
endfor i = 1:folder_numsexcel_file_names{i} %循环处理每个目标文件
end

5 案例

5.1 一个目标文件的读取和保存

读取一个文件路径已知,文件名已知的.csv里的数据,将数据的第一行和第二列改为200,然后将修改后的数据保存到原始的.csv文件里,同时在已知的文件路径下新建一个名'new’的文件夹,将修改后的数据也保存到新建的文件夹下,保存的文件名和原始文件名一样。

上述要求实现代码如下:

clear
close all
clc
%--------存放的路径未知,文件名已知
path = '/Users/Desktop/matlab_code/folder_test/my_test'; %存放目标文件的路径
name =  'data.csv';
data = csvread(fullfile(path,name)); %读取数据
data(2,2) = 200; %数据操作,将第2行第2列的数改为200%------将修改好的数据保存在原始文件里面
system('tskill excel'); %关闭所有打开的Excel文件
csvwrite(fullfile(path,name),data);%保存到原始文件里面%-------将修改好的数据保存到新的文件夹里
path_new = fullfile(path,'new'); %新生成的数据包存放路径if ~exist(path_new)mkdir(path_new); %不存在文件名为new的文件夹,则新建一个end
csvwrite(fullfile(path_new,name),data);
'done'

运行前:

 

运行后:

 

5.2 多个目标文件的批量读取和保存

读取多个文件路径已知,文件名未知的.csv里的数据,将数据的第一行和第二列改为200,然后将修改后的数据保存到原始的.csv文件里,同时在已知的文件路径下新建一个名'new’的文件夹,将修改后的数据也保存到新建的文件夹下,保存的文件名和原始文件名一样。

实现代码如下:

clear
close all
clc
path = '/Users/Desktop/matlab_code/folder_test/my_test';  %选择文件存放的文件夹路径
excel_files = dir(fullfile(path,'*.csv')); %获取所有后缀是.csv的文件名
folder_nums = size(excel_files,1);% 文件夹里csv文件数
for i=1:folder_nums     %获取所有文件夹名excel_file_names{i} = excel_files(i,1).name;
endfor i = 1:folder_numstarget_path = fullfile(path,excel_file_names{i})data = csvread(target_path); %读取数据data(2,2) = 300; %数据操作,将第2行第2列的数改为100%------将修改好的数据保存在原始文件里面csvwrite(target_path ,data);%保存到原始文件里面%-------将修改好的数据保存到新的文件夹里path_new = fullfile(path,'new'); %新生成的数据包存放路径if ~exist(path_new)mkdir(path_new); %不存在文件名为new的文件夹,则新建一个endcsvwrite(target_path,data);
end

运行前:

运行后:

http://www.dt0577.cn/news/55989.html

相关文章:

  • 网站建设i rsky上海seo博客
  • 黑龙江省建设安全网站怎么去推广自己的网站
  • 做公司网站排名输入关键词自动生成文章
  • 广州各区优化疫情防控措施seo编辑是干什么的
  • 山西省建设执业资格注册中心网站企业网站推广优化公司
  • 镇江地区做网站的公司有哪些刷关键词的平台
  • 珠海网站建设多少钱免费一键搭建网站
  • 做自己点击网站弹窗广告最多的网站
  • 扁平化设计风格的网站模板网络营销软文案例
  • 网络和网站的区别营销型制作网站公司
  • 网站制作费用明细搜索引擎推广的关键词
  • 沈阳高端网站定制开发知识搜索引擎
  • 做犯法任务的网站淘宝搜索关键词查询工具
  • 做代加工的网站发布网站制作的费用
  • 嘉兴做微网站多少钱seo在线优化工具 si
  • 找人做网站被骗能立案吗虚拟主机搭建网站
  • 做旅游网站的社会效益可行性六种常见的网络广告类型
  • 温州网站制作济南百度代理
  • 怎么做班级网站手机关键词点击排名软件
  • 盈润企业网站管理系统南宁百度推广seo
  • 安顺网站建设公司长沙seo霸屏
  • 网站访问统计 曲线图seo网络推广案例
  • 云南微网站建设的公司有哪些快排seo
  • 邯郸网站设计怎么注册谷歌搜索入口中文
  • 2017网站建设保定seo排名
  • 做网站都需要具备什么博客网站登录入口
  • 国外做自动化网站网络广告怎么做
  • 手把手教你做网站 怎么注册域名网站推广优化外链
  • 电商网站是怎么建设的万网登录入口
  • 消防有哪些网站合适做快手流量推广网站