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

windows和linux采用了不同的编码,这让很多人伤透了脑经,这里我采用了Python的chardet库获得代码的编码,然后修改编码

首先需要安装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修改文件linux编码格式,使用python的chardet库获得文件编码并修改编码相关推荐

  1. python获取文件编码格式除了chardet还有别的方式吗_使用python的chardet库获得文件编码并修改编码...

    首先需要安装chardet库,有很多方式,我才用的是比较笨的方式:sudo pip install chardet #!/usr/bin/env python # coding: UTF-8 impo ...

  2. linux运行脚本文件python,Python脚本:Linux自动化执行Python脚本

    1.环境及其工具: ubuntu 16.04 python2.7(自带) pip2.7(安装) virtualenv(安装) crontab (自带) 2.pip2.7安装 (1)尝试使用 sudo ...

  3. linux python excel文件,Linux下用python处理excel

    安装模块部分 pip install xlrd pip install xlwt 读取常用部分 导入模块 import xlrd 打开Excel文件读取数据 data = xlrd.open_work ...

  4. Linux下安装Python,并在Linux下运行python代码文件

    CentOS配置源 1.查看本地yum源 ll /etc/yum.repos.d/ 2.把默认yum源备份 mkdir /opt/centos-yum.bak mv /etc/yum.repos.d/ ...

  5. Python安装(一)-Linux下安装Python

    Linux系统CentOS 1.安装依赖组件 yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel s ...

  6. linux 升级python 3.5,Linux下升级Python到3.5.2版本

    本文主要介绍在Linux(CentOS)下将Python的版本升级为3.5.2的方法 众所周知,在2020年python官方将不再支持2.7版本的python,所以使用3.x版本的python是必要的 ...

  7. 在哪个Linux发行版上运行python,怎么在linux上运行python

    Linux默认是已经安装好了Python程序 目前来说,大多数的Linux发行版是安装了两个版本的Python程序 一个是Python 2.x 一个是Python 3.x 一些系统自带的程序文件需要P ...

  8. c调用python函数_python - Linux C调用Python 函数

    1.Python脚本,名称为py_add.py def add(a=,b=): print('Function of python called!') print('a = ',a) print('b ...

  9. 用Python chardet库来判断文件编码

    2019独角兽企业重金招聘Python工程师标准>>> 由于工作需要处理大量文件,在此之前需要统一文件编码.于是研究了一阵如何识别文件编码,转码这一过程相对简单,而识别确实个难题.由 ...

最新文章

  1. 05用线程类Thread开启线程
  2. 深入理解JVM虚拟机(五):字节码指令简介
  3. java并发编程与线程安全
  4. 为什么看别人的网站排名都在第一页?有可能是以下三种原因
  5. jvm对类的加载、链接、初始化
  6. 会赚钱的教师才是好教师
  7. 异贝,通过移动互联网技术,为中小微实体企业联盟、线上链接、线上线下自定义营销方案推送。案例38
  8. 在实时控制系统中使用传感器优化数据可靠性的3个技巧
  9. 机器学习笔记(四)聚类
  10. PS光影神话完整版下载安装
  11. CPU 是怎样工作的
  12. java中什么是空指针异常_JAVA中的空指针异常如何处理?
  13. 四轴飞行前检查及解锁
  14. frame 和 bounds的区别
  15. android百度地图定位到非洲,解决办法
  16. 计算机桌面如何显示大事件,让电脑桌面变得个性起来!这几款美化桌面软件你知道吗?...
  17. 手机号如何批量导入通讯录?
  18. 魔方cfop公式软件_【番外篇】CFOP玩法进阶技巧与衍生解法介绍大全!
  19. iconfont彩色图标
  20. 志宇-springSecurty

热门文章

  1. js 异步执行_JS Asynchronous — JS 异步编程极简史
  2. oracle11g 端口,navicate 连接 oracle11g精简版监听不到端口和用户密码错误问题
  3. deepin恢复出厂_win10强制恢复出厂设置方法
  4. python查看包的路径_获取python及三方包的版本,安装路径等信息
  5. mysql 存储过程临时表_在MySQL存储过程中创建的临时表的范围
  6. python中如何表示_新行在Python中是如何表示的?
  7. C语言中未显示声明函数返回值的类型
  8. mybatis plus按时间段查询_你应该知道的这些Mybatis-Plus使用技巧(小结)
  9. C++安全方向(三):3.6 SHA2原理分析和比特币挖矿,以及代码演示
  10. linux libstdc 怎样升级,linux 更新libstdc++.so.6