该脚本可将mat格式文件转换问csv文件,脚本执行环境为python3.8.1,需要安装pandas,hdf5storage库。
import pandas as pd
import hdf5storage
import os
"""
功能:将mat文件转换为csv
注意:运行脚本后,输入mat文件所在路径,脚本自动搜索 .mat文件
并将转换后的文件保存到同级目录下的changed文件夹中
"""
def seekfiles(path):
matpath=[]
for dirname, _, filenames in os.walk(path):
for filename in filenames:
if filename.endswith(".mat"):
matpath.append(os.path.join(dirname, filename))
return matpath
def mat_to_csv(matpaths):
if len(matpaths)==0:
print("目标文件夹无对应文件!!!!")
else:
for matpath in matpaths:
features_struct = hdf5storage.loadmat(matpath)
features = list(features_struct.values())[-1]
dfdata = pd.DataFrame(data=features)
dirn = os.path.dirname(matpath)
dirn=dirn+"\\changed\\"
if not os.path.exists(dirn):
os.mkdir(dirn)
else:
if os.path.exists(dirn):
print('the file exists')
else:
os.chdir(dirn)
os.mknod("changed") # 创建空文件
file_name = os.path.basename(matpath).split(".")[0]+".csv"
datapath1 =os.path.join(dirn,file_name)
dfdata.to_csv(datapath1, index=False,header=False)
if __name__=="__main__":
while True:
p=input("输入目标路径:")
a=seekfiles(p)
mat_to_csv(a)
cmd=input("是否继续(Y键继续,任意键退出)")
if cmd=="Y":
pass
else:
break