使用python的chardet庫獲得文件編碼并修改編碼
更新時間:2014年01月22日 11:25:01 作者:
windows和linux采用了不同的編碼,這讓很多人傷透了腦經(jīng),這里我采用了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()
相關(guān)文章
pytorch 把MNIST數(shù)據(jù)集轉(zhuǎn)換成圖片和txt的方法
這篇文章主要介紹了pytorch 把MNIST數(shù)據(jù)集轉(zhuǎn)換成圖片和txt的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05
pycharm 在windows上編輯代碼用linux執(zhí)行配置的方法
今天小編就為大家分享一篇pycharm 在windows上編輯代碼用linux執(zhí)行配置的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
Python對中國500強排行榜數(shù)據(jù)進行可視化分析實戰(zhàn)
這篇文章主要介紹了Python對中國500強排行榜數(shù)據(jù)進行可視化分析實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04
使用Python實現(xiàn)二終端網(wǎng)絡可靠度
這里給大家分享的是實現(xiàn)二終端網(wǎng)絡可靠度的方法以及使用Python實現(xiàn)的代碼,有需要的小伙伴可以參考下。2021-05-05

