博客列表 >Python高效编程技巧实战(10)

Python高效编程技巧实战(10)

yeyiluLAMP
yeyiluLAMP原创
2017年10月03日 22:14:491033浏览

snipaste20171003_210153.png

python2.x

In [1]: u'你好'
Out[1]: u'\u4f60\u597d'

In [2]: 'jafldsjjaggh'
Out[2]: 'jafldsjjaggh'

编码

In [5]: s.encode('utf8')
Out[5]: '\xe4\xbd\xa0\xe5\xa5\xbd'

In [6]: print '\xe4\xbd\xa0\xe5\xa5\xbd'
你好

In [7]: '\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf8')
Out[7]: u'\u4f60\u597d'

解码

In [8]: print '\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf8')
你好


python2.x读取文件

In [10]: f = open('py2.txt','w')

In [11]: f
Out[11]: <open file 'py2.txt', mode 'w' at 0xb69e2c28>

In [12]: s = u'你好'

In [13]: f.write(s.encode('gbk'))

In [14]: cat py2.txt

In [15]: f.close()

In [16]: cat py2.txt
ţº
In [17]: f = open('py2.txt','r')

In [18]: t = f.read()

In [19]: t
Out[19]: '\xc4\xe3\xba\xc3'

In [20]: t.decode('gbk')
Out[20]: u'\u4f60\u597d'

In [21]: print t.decode('gbk')
你好









python3.x
python3省去了在python2.x中手工编码和解码的工作

在python3.x中表示byte
In [8]: b'eajfsdjfjl'
Out[8]: b'eajfsdjfjl'


在python3.x中表示unicode字符串
In [9]: '你好'
Out[9]: '你好'


In [19]: f = open('py3.txt','wt',encoding='utf8')

In [20]: f
Out[20]: <_io.TextIOWrapper name='py3.txt' mode='wt' encoding='utf8'>

In [21]: f.write('我爱编程!')
Out[21]: 5


In [23]: f.close()

In [24]: f = open('py3.txt','rt',encoding='utf8')

In [25]: f.read()
Out[25]: '我爱编程!'

In [26]: s = f.read()

In [27]: s
Out[27]: ''

重置指针到文件头部初始位置
In [28]: f.seek(0)
Out[28]: 0

In [29]: s = f.read()

In [30]: print(s)
我爱编程!


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议