《python轻松实现代码编码格式转换.docx》由会员分享,可在线阅读,更多相关《python轻松实现代码编码格式转换.docx(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、python轻松实现代码编码格式转换文章主要介绍了python概率计算器实现方法,实例分析了Python实现概率计算的技巧,具有肯定参考借鉴价值,须要的挚友可以参考下.本文实例讲解并描述了python概率计算器实现方法。共享给大家供大家参考。详细实现方法如下:?123456789由于某些缘由,须要将代码从A机房迁移到B机房,这两个之间不能相互访问,但是历史缘由导致A机房的代码全是utf8编码的,B机房要求是GBK编码,看看这个怎么解决。虽然很简洁,但是还是要举荐给大家,须要的小伙伴参考下吧。最近刚换工作不久,没太多的时间去整理工作中的东西,大部分时间都在用来熟识新公司的业务,熟识他们的代码框架
2、了,最主要的是还有许多新东西要学,我之前主要是做php后台开发的,来这边之后还要把我半路出家的前端学好、还要学习C+,哈哈,总之很充溢了,每天下班回家都可以睡的很香(一句话总结,就是吃得香、睡的香)。再说说换工作时候吧,今年年初正式毕业半年了,感觉自己技术增长很快,原公司里面程序员的地位还不如运营,所以想换个工作,面试了3家(2家大的、一家小的),都给offer了,当然从大公司里面挑了个各方面综合(工资、干什么、交通等等)还不错的,反正感觉就很顺当的进来了(比毕业的时候简单多了),哈哈,越努力、越幸运,越幸运、越努力!。从这周起先,接着整理博客,免得给自己造成懒得习惯。刚来这个公司,熟识了环境
3、,老大就起先让我做一个迁移、修改代码的工作,我想说的是,这种工作真没劲,看别人的代码、改别人的代码、这里改个变量、那里改个文件名,都是些没技术含量、很繁琐的事情,不过通过迁移代码顺便熟识下环境也好。扯了这么多,说说今日的主题吧代码编码格式变更,由于某些缘由,须要将代码从A机房迁移到B机房,这两个之间不能相互访问,但是历史缘由导致A机房的代码全是utf8编码的,B机房要求是GBK编码,看看这个怎么解决。编码问题先说说为什么会有编码问题,就拿上面那个例子来说,B机房这边数据库全是GBK编码的,因此从数据库中取出来的数据都是GBK的,从数据库中取出来的数据是GBK编码的,要在展示的时候不乱码,在不对
4、数据库取出的数据转换的状况下,就须要发送header的时候设置编码为GBK,输出的文件(html、tpl等)都必需是GBK的,看看下面这个图会更清晰点:DB(GBK) => php等(编码格式不限但假如代码文件中有汉字,文件就要是gbk编码或者在汉字输出的时候转化为gbk) => header(GBK) => html、tpl(GBK)或者还有一种方式只在出库的时候在代码中将utf8转化为gbk,总的来说utf8还是更流行点,问题更少点DB(GBK) => php等(utf8,并将从数据库取出的数据转化为utf8) => header(utf8) => ht
5、ml、tpl(utf8)只要根据上面这两种规范编码格式,就不会出现乱码状况,至少我测试的第一种方式是没问题的,所以我猜其次种也ok,好了,现在就来写一个转换文件编码格式的小脚本:?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#!/usr/bin/python# -*- coding: utf-8 -*-#Filename:changeEncode.pyimport osimport sysdef ChangeEncode(file,fromEncode,toEnco
6、de):try:f=open(file)s=f.read()f.close()u=s.decode(fromEncode)s=u.encode(toEncode)f=open(file,w);f.write(s)return 0;except:return -1;def Do(dirname,fromEncode,toEncode):for root,dirs,files in os.walk(dirname):for _file in files:_file=os.path.join(root,_file)if(ChangeEncode(_file,fromEncode,toEncode)!
7、=0):print 转换失败:+_fileelse:print 胜利:+_filedef CheckParam(dirname,fromEncode,toEncode):encode=UTF-8,GBK,gbk,utf-8if(not fromEncode in encode or not toEncode in encode):return 2if(fromEncode=toEncode):return 3if(not os.path.isdir(dirname):return 1return 0if _name_=_main_:error=1:第一个参数不是一个有效的文件夹,3:源编码和目
8、标编码相同,2:您要转化的编码不再范围之内:UTF-8,GBKdirname=sys.argv1fromEncode=sys.argv2toEncode=sys.argv3ret=CheckParam(dirname,fromEncode,toEncode)if(ret!=0):print errorretelse:Do(dirname,fromEncode,toEncode)脚本很简洁,运用也很简洁代码如下:./changeEncode.py target_dir fromEncode toEncode这里要留意下,几种常见编码的关系:us-ascii编码是utf-8编码的一个子集,这个是从
9、stackoverflow上得到的,原文如下ASCII is a subset of UTF-8, so all ASCII files are already UTF-8 encoded,我试了下的确是的,在不加汉字的时候显示编码为us-ascii,加了汉字之后,变为utf-8。还有就是ASNI编码格式,这代表是本地编码格式,比如说在简体中文操作系统下,ASNI编码就代表GBK编码,这点还须要留意还有一点就是一个在linux下查看文件编码格式的吩咐是:代码如下:file -i *可以看到文件的编码格式。当然了,上面的可能有些文件中有特别字符,处理的时候会失败,但一般程序文件是没有问题的。以上
10、就是本文所述的全部内容了,希望对大家学习python能够有所帮助。请您花一点时间将文章共享给您的挚友或者留下评论。我们将会由衷感谢您的支持!111213141516171819202122232425262728293031from random import randrange#randrange form random moduledef calc_prob(strengths):A function that receives an array of two numbersindicating the strength of each partyand returns the winne
11、rif strengths1>strengths0:#Bring the bigger number to the first position in the arraytemp=strengths0strengths0=strengths1strengths1=tempprob1=abs(strengths0-strengths1)#The relative strength of the 2 partiesprob2=randrange(0,100)#To calculate the luck that decides the outcomeif prob2 in range(0,3
12、3-prob1):#Check if the weaker party is capable of winning.#The condition gets narrower with the increase#in relative strengths of each partiesreturn strengths1elif prob2 in range(33-prob1,66-prob1):#The middle conditionreturn Drawelse:return strengths0#Luck favors the stronger party and if relative
13、strength#between the teams is too large,#the match ends up in favor of the stronger party#Examplecalc_prob(50,75);#Always has to be a list to allow exchange#Can be programmed in hundreds of better ways. Good luck!希望本文所述对大家的Python程序设计有所帮助。本文来源:网络收集与整理,如有侵权,请联系作者删除,谢谢!第14页 共14页第 14 页 共 14 页第 14 页 共 14 页第 14 页 共 14 页第 14 页 共 14 页第 14 页 共 14 页第 14 页 共 14 页第 14 页 共 14 页第 14 页 共 14 页第 14 页 共 14 页第 14 页 共 14 页