博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python使用chardet包自动检测编码
阅读量:6279 次
发布时间:2019-06-22

本文共 1483 字,大约阅读时间需要 4 分钟。

chardet:charset detection

一旦自动检测出编码,就可以解码了。

八种文件打开方式

  • w:一旦打开文件,文件内容就清空了
  • r:只读方式打开
  • a:追加方式打开
  • r+:先读后写
    以上四种打开方式加上b,表示二进制方式。

str.decoding(encoding,error='strice')

解码时遇到错误有三种处理方式

  • strict:默认,抛出异常
  • replace:替换
  • ignore:不管

utf.py

import chardetimport osimport sysdef utf(path, recursive=False):    print(path)    if os.path.isfile(path):        with open(path, 'rb+') as f:            content = f.read()            encoding = chardet.detect(content)['encoding']            if encoding != 'utf-8':                s = content.decode(encoding, errors='ignore')                f.write(s.encode('utf8', errors='ignore'))    else:        for i in os.listdir(path):            now_path = os.path.join(path, i)            if os.path.isdir(now_path) and recursive:                utf(now_path, recursive)            elif os.path.splitext(i)[1] == '.txt':                utf(now_path)usage = """        python utf haha.txt #更改单文件        python utf haha #更改文件夹下的全部文本文件(.txt)        python utf haha recursive #递归更改文件夹下的全部文本文件        """if __name__ == '__main__':    # sys.argv = ['main', r'C:\Users\weidiao\Desktop\电子书', 'recursive']    if len(sys.argv) == 1:        print(usage)        exit()    if len(sys.argv) > 3:        print(usage)        print('too many argument')        exit()    path = sys.argv[1]    if not os.path.exists(sys.argv[1]):        print(usage)        print('no this file or folder')        exit()    recursive = (len(sys.argv) == 3 and sys.argv[2] == 'recursive')    utf(path, recursive)

转载地址:http://idiva.baihongyu.com/

你可能感兴趣的文章
《游戏大师Chris Crawford谈互动叙事》一9.5 真实案例
查看>>
Mybatis与Spring整合连接MySQL
查看>>
GCC知识
查看>>
实验4 IIC通讯与EEPROM接口
查看>>
几个smarty小技巧
查看>>
Cocos2d-x3.2 Grid3D网格动作
查看>>
Java (for循环综合应用)
查看>>
NodeJs——(10)REST风格的路由规则
查看>>
软件可扩展性:来自星巴克的经验
查看>>
Java Cache系列之Guava Cache实现详解
查看>>
深入Log4J源码之LoggerRepository和Configurator
查看>>
System V 消息队列—复用消息
查看>>
vi常用快捷键
查看>>
Code Jam 2010 Round 1A Problem A
查看>>
C语言柔性数组
查看>>
iOS学习之flappyBird游戏的实现
查看>>
Cocos2D v2.0至v3.x简洁转换指南(五)
查看>>
springMVC4(8)模型数据绑定全面分析
查看>>
设计模式 - 适配器
查看>>
CSS之可折叠导航
查看>>