#!/usr/bin/python
# coding=utf8
import os,sys
def convert( filename, in_enc = "GBK", out_enc="UTF-8" ):
try:
tmp_filename = filename + ".tmp"
convert_cmd = "iconv -f %s -t %s %s > %s"%(in_enc, out_enc, filename, tmp_filename)
os.system (convert_cmd);
if (os.path.isfile(tmp_filename)) :
rm_cmd = "rm %s"%filename
mv_cmd = "mv %s %s"%(tmp_filename, filename);
os.system (rm_cmd);
os.system (mv_cmd);
except:
print " error... : filename : " + filename
def explore( dir ):
for root, dirs, files in os.walk( dir ):
for file in files:
path = os.path.join( root, file )
convert( path )
print " done"
def main():
if len( sys.argv ) > 1 :
path = sys.argv[1]
if os.path.isfile( path ):
convert( path )
elif os.path.isdir( path ):
explore( path )
if __name__ == "__main__":
main()
使用:python convert.py ./test