python转换文本编码和windows换行符

import os 
import sys 
import codecs 
import chardet 

def convert(filename,out_enc="utf-8"): 
    try: 
        content=codecs.open(filename,'rb').read() 
        source_encoding=chardet.detect(content)['encoding'] 
        content=content.decode(source_encoding).encode(out_enc)
        content=content.replace(b'\r\n',b'\n') 
        codecs.open(filename,'wb').write(content) 
        print("Encoding file :{0}, convert from {1} to {2}".format(filename,source_encoding,out_enc))
    except IOError as err: 
        print("I/O error:{0}".format(err)) 
  
def explore(dir): 
    suff_list=['.py','.txt','.sql']
    for root,dirs,files in os.walk(dir): 
        for file in files: 
            suffix=os.path.splitext(file)[-1]
            if suffix.lower() in suff_list: 
                path=os.path.join(root,file) 
                convert(path) 
    
if __name__=="__main__": 
    # dir="./test"
    dir=os.getcwd()
    if len(sys.argv)==2:
        dir=sys.argv[1]
    explore(dir)

转载于:https://my.oschina.net/huhaicool/blog/1842678

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值