使用python转换编码格式
importchardetimportsysimportcodecsimportosdeffindEncoding(s):file=open(s,mode=‘rb‘)buf=file.read()result=chardet.detect(buf)file.close()returnresult[‘encoding‘]defconvertEncoding(s):ifos.access(s,os.W_OK):encoding=findEncoding(s)ifencoding!=‘utf-8‘andencoding!=‘ascii‘:print("convert %s%s to utf-8"%(s,encoding))contents=‘‘withcodecs.open(s,"r",encoding)assourceFile:contents=sourceFile.read()withcodecs.open(s,"w","utf-8")astargetFile:targetFile.write(contents)else:print("%s encoding is %s ,there is no need to convert"%(s,encoding))else:print("%s read only"%s)defgetAllFile(path,suffix=‘.‘):"recursive is enable"f=os.walk(path)fpath=[]forroot,dir,fnameinf:fornameinfname:ifname.endswith(suffix):fpath.append(os.path.join(root,name))returnfpathdefconvertAll(path):fclist=getAllFile(path,".c")fhlist=getAllFile(path,".h")flist=fclist+fhlistforfnameinflist:convertEncoding(fname)if__name__=="__main__":path=‘‘iflen(sys.argv)==1:path=os.getcwd()eliflen(sys.argv)==2:path=sys.argv[1]else:print("error parameter")exit()convertAll(path)
来源: