python----字符编码与文件处理

 字符编码

 

计算机工作就要通电,也就是说‘电‘驱使计算机干活,而电只有高电压(二进制1),低电压(二进制0),也就是说计算机只认数字。

 

编程的目的就是让计算机干活,编程的结果就是一堆字符,也就是我们编程最终实现的是:一堆字符驱动计算机干活呢。

 

1:python解释器是执行文件内容的,因而python解释器具备读py文件的功能,

 

   这一点与文本编辑器一样。

 

2:与文本编辑器不一样的地方在于,python解释器不仅可以读文件的内容,

 

   还可以执行文件内容。

 

      字符------------à(翻译过程)----------------à数字

 

      这个过程实际就是一个字符如何对应一个特定的数字标准,这个标准称之为数字编码。

 

一:ASCLL:

 

      一个Bytes=8bit--------------à可以表示为2**8种变化

 

      00000000-------------à0------------------à’a’

 

      00000001-------------à1------------------à’b’

 

      10101010

 

      1*(2**8)+1*(2**6)+1*(2**4)+1*(2**)

 

      ASCLL:最初只有七位,127个数字。

 

      为了将拉丁文也编码进ASCLL中,将最高位也占了。

 

二:为了满足中文,中国人定制了GBK。

 

      GBK:2Bytes代表一个字符。

 

      日本----------shift_JIS

 

      韩国----------Evc-kr

 

三:Unicode,统一用2(2Bytes)位代表一个字符。(万国编码)

 

优点:转换速度快。

 

缺点:占用空间大。

 

2**16=65536,可代表多个字符。

 

1Bytes    =    8bit

 

1Kb      =     1024Bytes

 

1MB     =     1024KB

 

1GB      =     1024MB

 

1027TB   =     1024GB

 

1GB      =     1024*1024*1024*1024*8

 

四:UTF—8(可变长的字符编码)-----------à精准,对不同的字符用不同的长度表示。

 

优点:节省空间。

 

缺点:转换速度慢。

 

     对英文字符只用1Gytes,对中文只能用3Byte          

 

       1内存中使用的是Unicode,用空间换时间(程序都需要加载到内存才能运行,因而内存要尽可能的快)

 

        2:硬盘中或者网络传输用Utf_8,保证数据传输的稳定性。

 

Unicode---------àencode-----------àutf-8

 

Utf-8---------àdcode------------àunicode

 

   结论:用什么编码存,就用什么编码取。

 

          Python3解释器中,默认的字符编码是Utf-8

 

          Python2解释器中,morn的是ASCII

 

          

 

   

 

    

 

       

 

posted @ 2017-07-26 14:59  H......T!  阅读(162)  评论(0编辑  收藏  举报