matlab打开别人.m文件出现乱码问题,特别是批量的.m文件时可用python更改
一般matlab默认编码为:GBK
或者可以现在MATLAB命令行中输入 feature(‘locale’) 来查看MATLAB的编码方式,如图2所示,MATLAB默认编码方式为GBK。
采用递归方式将路径下面的所有文件,从原来的格式变为GBK的格式,python版本3.x。本文只转换.m文件,但是方法使用于各种类型文件。
import os
import codecs
import chardet
#对该文件夹下包括子文件夹的所有文件进行遍历
path_in = r'D:\**'
#需要转换成GBK编码
codec_out = 'GBK'
for home, dirs, files in os.walk(path_in):
for filename in files:
#只转换matlab脚本文件
if filename.endswith('.m'):
#home为文件所在文件夹的路径,filename为文件名
file = os.path.join(home, filename)
#检测文件原来的编码格式
with open(file, "rb") as f_in:
data = f_in.read()
codec_in = chardet.detect(data)['encoding']
#将文件旧编码格式转换为UTF-8,并写入原文件完成替换
try:
with codecs.open(file, 'r', codec_in) as f_in:
new_data = f_in.read()
f_out = codecs.open(file, 'w', codec_out)
f_out.write(new_data)
f_out.close()
except IOError as err:
print("I/O error: {0}".format(err))