使用python的chardet库获得文件编码并修改编码
2014-01-22 00:00
841 查看
首先需要安装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的chardet库获得文件编码并修改编码
- 采用python获得并修改文件编码(原创)
- 【转】使用python 修改文件内容
- 使用Python脚本将酷狗音乐的缓存文件修改为可播放
- 修改配置文件使Netbeans默认使用UTF-8编码
- Python 3下使用Matplotlib工具画图,中文显示乱码的问题解决(修改配置文件)
- 10.IntelliJ IDEA 主题、字体、编辑区主题、文件编码修改 - IntelliJ IDEA 使用教程
- 如何使用Python批量修改文件中有规律的字符串
- python 中使用ConfigParser类修改配置文件
- Python中使用不同编码读写txt文件详解
- 如何修改geditor的配置文件 -好像geditor没有文本格式的配置文件? 要使用dconf-editor来配置- geditor自己配置编码格式
- Pycharm使用技巧:File Encoding(修改文件编码)
- 使用python 修改文件内容
- 使用editplus批量修改文件编码
- 使用fileinput模块进行原地修改文件 分类: python 小练习 2013-08-13 16:47 618人阅读 评论(0) 收藏
- python 使用模块augeas修改类似a=b的配置文件
- 使用python批量修改文件的后缀
- Python文件编码不可以使用UTF16
- windows下使用Python来修改文件时间戳
- Python中使用不同编码读写txt文件详解