易截截图软件、单文件、免安装、纯绿色、仅160KB

话说Python(三)万恶的编码

万恶的编码
小菜对于老师上一节讲的不是很明白,因为没有一本书是将文件与web一起讲授的,他决定自己探究一下它们之间的不同:
首先,小菜在C盘建了一个文本文档 file.txt,输入四个字:我是小菜。
然后,小菜在shell中练习起来:
>>> file=open("c:\\file.txt","r")
>>> data=file.read()
>>> print(data)
我是小菜
>>>

小菜有了成就感,接着试一试这个:
>>> import urllib.request
>>> page=urllib.request.urlopen("http://www.baidu.com")
>>> data=page.read()
>>> print(data)
b'<!doctype html><html><head><meta http-equiv="Content-Type" content="text/html;charset=gb2312"><title>\xb0\xd9\xb6\xc8\xd2\xbb\xcf\xc2\xa3\xac\xc4\xe3\xbe\xcd\xd6\xaa\xb5\xc0
#在这里为了节约篇幅我省略了后面内容

“不对啊,这些反斜杠是啥啊!汉字咋没了?”小菜对于这种蔑视汉语的行为非常愤慨,“怪不得中国人编程不行了,连汉字都要折腾半天。”
第二天一上课,小菜跑到老师跟前,抱怨起来:“文件和网络读取的结果不一样啊!一个正常,一个不显示汉字。”
大牛老师笑着说:“这不能怪你,是我没有讲清楚。”
Python 3.x 与Python 2.x的不同点之一就是Python3k引入了bytes对象,刚才小菜在file中得到的是string(字符串),而在url中得到的是bytes(字节)。在最后的输出里,前面有一个b,指的就是bytes。其实,如果open采用“b”模式的时候,得到的也是bytes,将字节转化就要学到今天的内容:编码。
Python3k中采用两个函数完成这个工作:encode()和decode()。
顾名思义:encode()是进行编码的,将字符串编码成想要的编码格式。
decode()是进行解码的,将编码的字节解码为字符串。
常用的编码格式有ASCII、unicode、UTF-8、big5、gbk、gb2312等,ascii用于北美字符,utf-8、unicode是国际标准,big5是中文繁体,gbk、gb2312是简体中文。
小菜的web数据是gb2312编码的,可以在后面写
>>> content=data.decode('gb2312')
>>> print(content)
<!doctype html><html><head><meta http-equiv="Content-Type" content="text/html;charset=gb2312"><title>百度一下,你就知道 </title>


相关文档:

python绘制螺旋线

#coding=utf-8
from math import sqrt,cos,sin
import Image, ImageDraw
class SpireShape(object):
    def __init__(self, draw):
        self.draw = draw
        self.line_width = 1
     & ......

Python通讯簿

这两天在学习python语言,也学着写了个通讯簿,练习入门下!
功能包括以下:
1、增加一条记录
2、删除一条记录
3、修改一条记录
4、查询一条记录
5、显示整个通讯簿
6、帮助提示
7、版本显示
8、退出等
首先建立一个Person类,即Person.py文件,用来保存联系人记录:
class Person:
def __init__(self, nam ......

Python 线程池的实现

import urllib2
import time
import socket
from datetime import datetime
from thread_pool import *

def main():
url_list = {"sina":"http://www.sina.com.cn",
"sohu":"http://www.sohu.com",
"yahoo":"http://www.yahoo.com",
"xiaonei":"http://www.x ......

Eclipse Python开发环境

1,下载org.python.pydev.feature-1.5.0.1251989166.zip http://sourceforge.net/projects/pydev/files/
2,安装插件到eclipse
3,重启eclipse
注意:使用1.5.6版本pydev插件,创建python工程会报错,使用1.5.0版本无此问题。 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号