CDA人工智能学院致力于以优质的人工智能在线教育资源助力学员的DT职业梦想!课程内容涵盖数据分析、机器学习、深度学习、人工智能、tensorFlow、PyTorch、知识图谱等众多核心技术及行业案例,让每一个学员都可以在线灵活学习,快速掌握AI时代的前沿技术。PS:私信我即可获取CDA会员1个月免费试听机会
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()
扫码关注CDA公众号,即可获取“最新版数据分析题库大全”与“CDA免费精品课70+”