python修改文件linux编码格式,使用python的chardet库获得文件编码并修改编码
使用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库获得文件编码并修改编码相关推荐
- python获取文件编码格式除了chardet还有别的方式吗_使用python的chardet库获得文件编码并修改编码...
首先需要安装chardet库,有很多方式,我才用的是比较笨的方式:sudo pip install chardet #!/usr/bin/env python # coding: UTF-8 impo ...
- linux运行脚本文件python,Python脚本:Linux自动化执行Python脚本
1.环境及其工具: ubuntu 16.04 python2.7(自带) pip2.7(安装) virtualenv(安装) crontab (自带) 2.pip2.7安装 (1)尝试使用 sudo ...
- linux python excel文件,Linux下用python处理excel
安装模块部分 pip install xlrd pip install xlwt 读取常用部分 导入模块 import xlrd 打开Excel文件读取数据 data = xlrd.open_work ...
- Linux下安装Python,并在Linux下运行python代码文件
CentOS配置源 1.查看本地yum源 ll /etc/yum.repos.d/ 2.把默认yum源备份 mkdir /opt/centos-yum.bak mv /etc/yum.repos.d/ ...
- Python安装(一)-Linux下安装Python
Linux系统CentOS 1.安装依赖组件 yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel s ...
- linux 升级python 3.5,Linux下升级Python到3.5.2版本
本文主要介绍在Linux(CentOS)下将Python的版本升级为3.5.2的方法 众所周知,在2020年python官方将不再支持2.7版本的python,所以使用3.x版本的python是必要的 ...
- 在哪个Linux发行版上运行python,怎么在linux上运行python
Linux默认是已经安装好了Python程序 目前来说,大多数的Linux发行版是安装了两个版本的Python程序 一个是Python 2.x 一个是Python 3.x 一些系统自带的程序文件需要P ...
- 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 ...
- 用Python chardet库来判断文件编码
2019独角兽企业重金招聘Python工程师标准>>> 由于工作需要处理大量文件,在此之前需要统一文件编码.于是研究了一阵如何识别文件编码,转码这一过程相对简单,而识别确实个难题.由 ...
最新文章
- 05用线程类Thread开启线程
- 深入理解JVM虚拟机(五):字节码指令简介
- java并发编程与线程安全
- 为什么看别人的网站排名都在第一页?有可能是以下三种原因
- jvm对类的加载、链接、初始化
- 会赚钱的教师才是好教师
- 异贝,通过移动互联网技术,为中小微实体企业联盟、线上链接、线上线下自定义营销方案推送。案例38
- 在实时控制系统中使用传感器优化数据可靠性的3个技巧
- 机器学习笔记(四)聚类
- PS光影神话完整版下载安装
- CPU 是怎样工作的
- java中什么是空指针异常_JAVA中的空指针异常如何处理?
- 四轴飞行前检查及解锁
- frame 和 bounds的区别
- android百度地图定位到非洲,解决办法
- 计算机桌面如何显示大事件,让电脑桌面变得个性起来!这几款美化桌面软件你知道吗?...
- 手机号如何批量导入通讯录?
- 魔方cfop公式软件_【番外篇】CFOP玩法进阶技巧与衍生解法介绍大全!
- iconfont彩色图标
- 志宇-springSecurty
热门文章
- js 异步执行_JS Asynchronous — JS 异步编程极简史
- oracle11g 端口,navicate 连接 oracle11g精简版监听不到端口和用户密码错误问题
- deepin恢复出厂_win10强制恢复出厂设置方法
- python查看包的路径_获取python及三方包的版本,安装路径等信息
- mysql 存储过程临时表_在MySQL存储过程中创建的临时表的范围
- python中如何表示_新行在Python中是如何表示的?
- C语言中未显示声明函数返回值的类型
- mybatis plus按时间段查询_你应该知道的这些Mybatis-Plus使用技巧(小结)
- C++安全方向(三):3.6 SHA2原理分析和比特币挖矿,以及代码演示
- linux libstdc 怎样升级,linux 更新libstdc++.so.6