使用python的chardet库获得文件编码并修改编码
更新时间:2014年01月22日 11:25:01 作者:
windows和linux采用了不同的编码,这让很多人伤透了脑经,这里我采用了Python的chardet库获得代码的编码,然后修改编码
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud)
(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun)
首先需要安装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()
相关文章
Python3正则表达式之:(?(id/name)yes-pattern|no-pattern)条件性匹配
(?(id/name)yes-pattern|no-pattern)的作用是对于给出的id或者name,先尝试去匹配 yes-pattern部分的内容,如果id或name条件不满足,则去匹配no-pattern部分的内容2021-10-10django将图片保存到mysql数据库并展示在前端页面的实现
这篇文章主要介绍了django将图片保存到mysql数据库并展示在前端页面的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-05-05Python input函数实现获取键盘输入的字符串流程讲解
这篇文章主要介绍了Python input函数实现获取键盘输入的字符串流程,input()是Python的内置函数,用于从控制台读取用户输入的内容。input()函数总是以字符串的形式来处理用户输入的内容,所以用户输入的内容可以包含任何字符2023-01-01
最新评论