Python——第三方模块

Pillow

PIL:Python Imaging Library。Python平台的图像处理标准库。

PIL功能非常强大,但API却非常简单易用

其最新版本是pillow,支持Python3.x

requests

虽然内置的urllib模块可以访问网络资源。但是比较麻烦更好的是使用第三方库requests

安装:

pip install requests

get——请求

import requests
r=requests.get(url)
#此时既可以获得网页的资源。
r.status_code   访问状态  200为成功
r.text          源码
r.url
r.encoding
r.content 获得内容的bytes对象 b'xxxxxxxxxxxx'
r.headers
r.cookies
  1. 如果要访问带参数的url,还需要传入一个dict作为params的参数。

    import requests
    dict={'q': 'python', 'cat': '1001'}
    r=requests.get('https://www.douban.com/search',params=dict)
    r.url           
    #'https://www.douban.com/search?q=python&cat=1001'
  2. requests对于特定类型的响应可以直接获得,例如对于json,可以直接用r.json()获得数据

    r=requests.get(json型的url)
    r.json() #获得json数据
  3. 要传入header,直接传入一个dict作为headers的参数

    import requests
    dict={'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit'}
    r=requests.get(url,headers=dict)

Post

发送Post请求,只需要把get()方法变为post(),然后把数据作为data的参数传入即可。

import requests
r=requests.post(url,data=数据)
  1. 要传递json数据,可以直接传入作为json的参数。

    import requests
    d={'key':'value',~~~~~}
    p=requests.post(url,json=d)  #内部会对d自动进行json序列化
  2. 上传文件,文件的编码格式作为files的参数。

    import requests
    #务必使用'rb'即二进制模式读取,这样获取的bytes长度才是文件的长度。
    update_file=open('xxxx.xls','rb')       
    p=requests.post(url,files=update_file)

设置请求超时时间

传入以秒为单位的时间作为timeout的参数

r=requests.get(url,timeout=5)

chardet——检测bytes的编码

安装: pip install chardet

使用 import chardet

chardet.dettect(bytes)

得到bytes的编码时就可以用decode('编码') 转换成字符串

virtualenv

virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境。

要开发一个新的项目,需要一套独立的Python运行环境,可以这么做:

第一步,创建目录:

Mac:~ michael$ mkdir myproject
Mac:~ michael$ cd myproject/
Mac:myproject michael$

第二步,创建一个独立的Python运行环境,命名为venv

Mac:myproject michael$ virtualenv --no-site-packages venv
Using base prefix '/usr/local/.../Python.framework/Versions/3.4'
New python executable in venv/bin/python3.4
Also creating executable in venv/bin/python
Installing setuptools, pip, wheel...done.

命令virtualenv就可以创建一个独立的Python运行环境,我们还加上了参数--no-site-packages,这样,已经安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境。

新建的Python环境被放到当前目录下的venv目录。有了venv这个Python环境,可以用source进入该环境:

Mac:myproject michael$ source venv/bin/activate
(venv)Mac:myproject michael$

注意到命令提示符变了,有个(venv)前缀,表示当前环境是一个名为venv的Python环境。

下面正常安装各种第三方包,并运行python命令:

(venv)Mac:myproject michael$ pip install jinja2
...
Successfully installed jinja2-2.7.3 markupsafe-0.23
(venv)Mac:myproject michael$ python myapp.py
...

venv环境下,用pip安装的包都被安装到venv这个环境下,系统Python环境不受任何影响。也就是说,venv环境是专门针对myproject这个应用创建的。

退出当前的venv环境,使用deactivate命令:

图形界面——Tkinter

Tk是一个图形库,支持多个操作系统,使用Tcl语言开发;

Tk会调用操作系统提供的本地GUI接口,完成最终的GUI。

所以,我们的代码只需要调用Tkinter提供的接口就可以了。

使用过程:

#1      导入包tkinter
from tkinter import *
#2      创建类Application,这是所有widge的父容器
class Application(Frame):
    def __init__(self,master=None):
        Frame.__init__(self,master)
        self.pack()  #pack() 是把widge加入到父容器内
        self.createWidge()      #在这个函数里面写自己的GUI
        
    def createWidge(self):
        pass
#3      实例化
App=Application()
App.master.title("设置标题")
App.mainloop()      #主消息循环    


猜你喜欢

转载自blog.csdn.net/qq_26269815/article/details/80827678