def gf_file_convert_encoding(filename, target_encoding): ''' 解决导入csv或文本文件 报错在执行 for tb in csv_reader 语句报错“UnicodeDecodeError”, 报错原因文件中有非gbk的字符 0xfd, 需要先将文件转为utf-8格式后, 再通过语句 with open(Ren_UP5G_file,'r',encoding='utf-8') as csvfile: 导入 报错内容如下: Traceback (most recent call last): File "genDayRpt.py", line 1006, in <module> File "impWGHX.py", line 105, in impWGHXDayData_DaySum UnicodeDecodeError: 'gbk' codec can't decode byte 0xfd in position 324: illegal multibyte sequence #参数说明 :param filename: 要转换格式的文件名 :param target_encoding: 要转换后的字符集 'UTF-8-SIG' 调用方法如下: try: gf_file_convert_encoding(filename, 'UTF-8-SIG') except Exception, e: print('转换文件格式失败,文件名为:',filename) ''' # Backup the origin file. # convert file from the source encoding to target encoding content = codecs.open(filename, 'rb').read() #注意需要用rb二进制模式读取 source_encoding = chardet.detect(content)['encoding'] #print ("原文件" , filename, '编码格式为encode:', source_encoding) print("原文件", filename, '编码格式为:', source_encoding,"转换后的编码格式为:",target_encoding) content = content.decode(source_encoding, 'ignore') # .encode(source_encoding) codecs.open(filename, 'w', encoding=target_encoding).write(content)
Python转换文件编码格式,解决报错“UnicodeDecodeError”
最新推荐文章于 2024-03-23 22:27:46 发布