自己写的方法,适用于linux,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#!/usr/bin/python
#coding=utf-8
import sys
import os, os.path
import dircache
import commands
def add(x,y):
return x * y
def trans(dirname):
lis = dircache.opendir(dirname)
for a in lis:
af = dirname + os.sep + a
## print af
if os.path.isdir(af):
## print af
trans(af)
else :
## print af+"encoding="+fi.name
ft = commands.getoutput( 'file -i ' + af)
## print ft
if a.find( '.htm' ) = = - 1 and a.find( '.xml' ) = = - 1 and ft.find( 'text/' )! = - 1 and ft.find( 'iso-8859' )! = - 1 :
print 'gbk' + ft + ">" + af
commands.getoutput( 'iconv -ficonv -f gbk -t utf-8 -c -o' + " "+af+" " + af)
trans(os.getcwd())
|
py2.6以下版本可用代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import os,sys
def convert( filename, in_enc = "GBK" , out_enc = "UTF8" ):
try :
print "convert " + filename,
content = open (filename).read()
new_content = content.decode(in_enc).encode(out_enc)
open (filename, 'w' ).write(new_content)
print " done"
except :
print " error"
def explore( dir ):
for root, dirs, files in os.walk( dir ):
for file in files:
path = os.path.join(root, file )
convert(path)
def main():
for path in sys.argv[ 1 :]:
if os.path.isfile(path):
convert(path)
elif os.path.isdir(path):
explore(path)
if __name__ = = "__main__" :
main()
|
支持py3.1的版本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
import os
import sys
import codecs
#该程序用于将目录下的文件从指定格式转换到指定格式,默认的是GBK转到utf-8
def convert( file ,in_enc = "GBK" ,out_enc = "UTF-8" ):
try :
print ( "convert " + file )
f = codecs. open ( file , 'r' ,in_enc)
new_content = f.read()
codecs. open ( file , 'w' ,out_enc).write(new_content)
#print (f.read())
except IOError as err:
print ( "I/O error: {0}" . format (err))
def explore( dir ):
for root,dirs,files in os.walk( dir ):
for file in files:
path = os.path.join(root, file )
convert(path)
def main():
for path in sys.argv[ 1 :]:
if (os.path.isfile(path)):
convert(path)
elif os.path.isdir(path):
explore(path)
if __name__ = = "__main__" :
main()
|
以上所述就是本文 的全部内容了,希望大家能够喜欢。