处理很多数据时,遇到大量的编码问题,因此想到使用chardet库,通过os的walk方法遍历文件夹,将每个文件的编码方式序列化到一个json文件中,需要使用的时候json load一下就可以了
#!/ USR / bin中/ env的蟒 # - * -编码:UTF-8 - * - 进口 argparse 进口 OS 从 chardet的进口检测 进口 JSON #输出的目录的字符集 解析器= argparse.ArgumentParser() parser.add_argument(“--path” ,help = '输入目录') parser.add_argument(“--ter_path” ,help = '关于charset的json文件路径') args = parser.parse_args() work_path = args.path json_path = args.ter_path #解析命令args charse = dict() work_path = r'D:\ 3' 为根,显示目录,文件在 os.walk(work_path): 为名称在文件: FILE_NAME = os.path.join(根,名称) 与打开(FILE_NAME ,'RB' )为 FO: a = detect(fo.readline())[ 'encoding' ] if a == 'ascii': 代码= 'ANSI' 别人: 代码= a charse [文件名] =代码 打印(charse) 与打开(json_path ,'A +' ,编码 = 'UTF-8' )为 FO: json.dump(charse , fo)因为工作在英文环境下,ASCII有时候依然会产生乱码,将所有的ASCII的键值改成ANSI
编码ANSI在英文操作系统下对应的是ASCII码,中文是GB
UTF-8编码方式对于英文来说和ASCII的编码方式一样
JSON的反序列化:
尽量都使用UTF-8的编码方式