最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-27 14:29:58
文档

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

使用python的chardet库获得文件编码并修改编码:首先需要安装chardet库,有很多方式,我才用的是比较笨的方式:sudo pip install chardet 代码如下:#!/usr/bin/env python# coding: UTF-8import sysimport osimport chardet def print_usage(): print '''usa
推荐度:
导读使用python的chardet库获得文件编码并修改编码:首先需要安装chardet库,有很多方式,我才用的是比较笨的方式:sudo pip install chardet 代码如下:#!/usr/bin/env python# coding: UTF-8import sysimport osimport chardet def print_usage(): print '''usa


首先需要安装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的chardet库获得文件编码并修改编码:首先需要安装chardet库,有很多方式,我才用的是比较笨的方式:sudo pip install chardet 代码如下:#!/usr/bin/env python# coding: UTF-8import sysimport osimport chardet def print_usage(): print '''usa
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top