python通过第三方库chardet以字节方式读进字节流对象,然后通过detect函数识别进而获取文件的格式。
""" 自动识别 文本编码格式 """ import chardet def detectCode(path): with open(path, 'rb') as file: data = file.read(20000) dicts = chardet.detect(data) return dicts["encoding"] def print_data_1(path): """ 这种编码通过命令行 file -i 文件名获取编码格式, 通过测试,使用file 命令获取的编码格式不能获取正确的编码数据 :param path: :return: """ with open(path, "r", encoding="iso-8859-1") as f: i = 0 for line in f: print(line) i += 1 if i == 5: break f.close() def print_data_2(path): print("-------------------------------") with open(path, "r", encoding="{0}".format(detectCode(path))) as f: i = 0 for line in f: b_line = line.encode("utf-8") # 将文件内容转化为utf-8格式 print(chardet.detect(b_line)['encoding']) # 输出转化为内容格式 i += 1 if i == 5: break f.close() if __name__ == '__main__': path = "test.txt" print(detectCode(path)) # print_data_1(path) print_data_2(path)
推荐课程:Python进阶视频教程
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!