KeyFC欢迎致辞,点击播放
资源、介绍、历史、Q群等新人必读
KeyFC 社区总索引
如果你找到这个笔记本,请把它邮寄给我们的回忆
KeyFC 漂流瓶传递活动 Since 2011
 

[代发][更新]文本编码转换 源码[Python]

[ 7149 查看 / 7 回复 ]

好的,这是同学的最新version
  1. # -*- coding:utf-8 -*-

  2. #!/bin/env python

  3. import chardet,sys,thread,os





  4. def encodeFile(fi,de):

  5.     # a=raw_input("输入您需要转换文件的绝对路径,回车键结束\n")

  6.     #try:

  7.     file=open(fi,'r')

  8.     # except IOError,diag:

  9.     #    file.close()

  10.     #    file=diag

  11.     #    print'err:%s'%file



  12.     eachnewfile=""

  13.     for eachfile in file:

  14.         eachfile=eachfile.decode(de).encode('utf-8')

  15.         eachnewfile+=eachfile

  16.     #    print eachfile

  17.     file.close()



  18.     #print '读取完成,等待写入新文件\n'

  19.     newfile='uni.'+os.path.split(fi)[-1]

  20.     # try:

  21.     newWriteFile=open(newfile,'w+')

  22.     # except IOError,diag:

  23.     #    newWriteFile.close()

  24.     #    newWriteFile=diag

  25.     #    print'打开新文件出错%s'%newWriteFile



  26.     newWriteFile.write(eachnewfile)



  27.     #print('保存成功!')

  28. files=sys.argv[1]

  29. def tran_code(file):

  30.     try:

  31.         ocode=chardet.detect(file)

  32.         print file+' is '+ocode['encoding']

  33.         encodeFile(file,ocode['encoding'])

  34.     except :

  35.         print u"自动识别失败 请手动输入原始编码\n"

  36.         code=raw_input()

  37.         try:

  38.             encodeFile(file,code)

  39.         except :

  40.             print 'error'

  41.     else:

  42.         print file+'.......success!\n'

  43. if os.path.isdir(files):

  44.     os.chdir(files)

  45.     files = os.listdir(files)

  46.     for file in files:

  47.         tran_code(file)

  48. else:

  49.   #print os.path.split(files)

  50.     os.chdir(os.path.split(files)[0])

  51.     tran_code(files)

复制代码
此外他还做了这个。你明白的。
  1. # -*- coding:utf-8 -*-

  2. import os,re 

  3. import urllib,httplib

  4. import sys

  5. reload(sys)

  6. sys.setdefaultencoding('utf-8')

  7. def envir():

  8.     url = "http://222.190.111.117:8023/" 

  9.     content=''

  10.     #httplib.HTTPConnection.debuglevel = 1 

  11.     page = urllib.urlopen(url) 

  12.     # print "status:", page.getcode() #200请求成功,404 

  13.     # print "url:", page.geturl() 

  14.     # print "head_info:\n",  page.info() 

  15.     #print "Content len:", page.read()

  16.     content=str(page.read()).replace(" ","")

  17.         #print page.read() 

  18.     AQI = content.find(u'AQI_data_number')

  19.     content=content[AQI+332:AQI+654]

  20.     content=content.splitlines()

  21.         #print con.encode('utf-8')

  22.     a = "API: "+content[0][:3]

  23.     b = content[2][4:-5].decode('utf-8')

  24.     c = content[3][4:-5].decode('utf-8')

  25.     d = u'主要污染物: '+content[-1][4:-5].replace('<sub>','').replace('</sub>','')



  26.     return a+'\n'+b+'\n'+c+'\n'+d

  27. print envir()

复制代码
最后一些说(fei)明(hua)。
同学现使用的OS为Ubuntu,VIM和win8.1,Sublime Text.(当然他还用过MacOSX  MountainLion,BackTrack...
リン推荐使用Sublime Text
最后编辑リン 最后编辑于 2013-12-24 19:39:24
分享 转发
TOP

回复 4# 枸鸺槿 的帖子

對了有個Pies
最新版本2.5.0
是py 2和3 的兼容層。
詳見開源中國 oschina.net
TOP