使用python的chardet库获得文件编码并修改编码


Posted in Python onJanuary 22, 2014

首先需要安装chardet库,有很多方式,我才用的是比较笨的方式:sudo pip install chardet

#!/usr/bin/env python
# coding: UTF-8
import sys
import os
import chardet 
def print_usage():

print '''usage:

change_charset [file|directory] [charset] [output file]\n

for example:

  change 1.txt utf-8 n1.txt

  change 1.txt utf-8

  change . utf-8

  change 1.txt
'''
def get_charset(s):

return chardet.detect(s)['encoding']
 
def remove(file_name):

os.remove(file_name)
 
def change_file_charset(file_name, output_file_name, charset):

f = open(file_name)

s = f.read()

f.close()

if file_name == output_file_name or output_file_name == "":


remove(file_name)

old_charset = get_charset(s)

u = s.decode(old_charset)

if output_file_name == "":


output_file_name = file_name

f = open(output_file_name, 'w')

s = u.encode(charset)

f.write(s)

f.close()
 
def do(file_name, output_file_name, charset):

if os.path.isdir(file_name):


for item in os.listdir(file_name):



try:




if os.path.isdir(file_name+"/"+item):





do(file_name+"/"+item, "", charset)




else:





change_file_charset(file_name+"/"+item, "", charset)



except OSError, e:




print e

else:


change_file_charset(file_name, output_file_name, charset)
 
if __name__ == '__main__':

length = len(sys.argv)

if length == 1:


print_usage()

elif length == 2:


do(sys.argv[1], "", "utf-8")

elif length == 3:


do(sys.argv[1], "", sys.argv[2])

elif length == 4:


do(sys.argv[1], sys.argv[3], sys.argv[2])

else:


print_usage()
Python 相关文章推荐
python读取浮点数和读取文本文件示例
May 06 Python
Python语言实现机器学习的K-近邻算法
Jun 11 Python
浅谈python中列表、字符串、字典的常用操作
Sep 19 Python
Python把csv数据写入list和字典类型的变量脚本方法
Jun 15 Python
python Web开发你要理解的WSGI & uwsgi详解
Aug 01 Python
Python列表元素常见操作简单示例
Oct 25 Python
python二维键值数组生成转json的例子
Dec 06 Python
Python谱减法语音降噪实例
Dec 18 Python
使用TensorFlow直接获取处理MNIST数据方式
Feb 10 Python
Python3如何在Windows和Linux上打包
Feb 25 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
May 09 Python
Python3自定义json逐层解析器代码
May 11 Python
使用go和python递归删除.ds store文件的方法
Jan 22 #Python
python学习手册中的python多态示例代码
Jan 21 #Python
python pdb调试方法分享
Jan 21 #Python
python发送邮件接收邮件示例分享
Jan 21 #Python
python逐行读取文件内容的三种方法
Jan 20 #Python
c++生成dll使用python调用dll的方法
Jan 20 #Python
python中getattr函数使用方法 getattr实现工厂模式
Jan 20 #Python
You might like
一个oracle+PHP的查询的例子
2006/10/09 PHP
php str_pad 函数用法简介
2009/07/11 PHP
php处理restful请求的路由类分享
2014/02/27 PHP
PHP中字符与字节的区别及字符串与字节转换示例
2016/10/15 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
PHP等比例压缩图片的实例代码
2018/07/26 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
jquery分页插件AmSetPager(自写)
2013/04/15 Javascript
script不刷新页面的联动前后代码
2013/09/18 Javascript
jquery修改网页背景颜色通过css方法实现
2014/06/06 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
2015/06/14 Javascript
基于jQuery实现的菜单切换效果
2015/10/16 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
2017/07/17 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
2017/09/03 jQuery
[00:44]2016完美“圣”典 风云人物:Mikasa宣传片
2016/12/07 DOTA
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
深入理解python中的select模块
2017/04/23 Python
如何使用Python实现自动化水军评论
2019/06/26 Python
python通过txt文件批量安装依赖包的实现步骤
2019/08/13 Python
Python将视频或者动态图gif逐帧保存为图片的方法
2019/09/10 Python
Python爬虫使用代理IP的实现
2019/10/27 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
解决windows下python3使用multiprocessing.Pool出现的问题
2020/04/08 Python
详解Python中list[::-1]的几种用法
2020/11/16 Python
一张图片能隐含千言万语之隐藏你的程序代码
2012/12/13 HTML / CSS
加利福尼亚州威尼斯的女性奢侈品设计师服装和概念店:Mona Moore
2018/09/13 全球购物
英国电子专家:maplin
2019/09/04 全球购物
新西兰最大的连锁超市:Countdown
2020/06/04 全球购物
销售员岗位职责范本
2014/02/03 职场文书
遗嘱继承公证书
2014/04/09 职场文书
高一学生评语大全
2014/04/25 职场文书
美术第二课堂活动总结
2014/07/08 职场文书
环境保护与污染治理求职信
2014/07/16 职场文书
创业计划书之冷饮店
2019/09/27 职场文书
Nginx的gzip相关介绍
2022/05/11 Servers
Flink 侧流输出源码示例解析
2022/09/23 Servers