龙空技术网

Python中的模块

长点芝士 786

前言:

如今咱们对“python codecs模块”大体比较看重,你们都想要学习一些“python codecs模块”的相关资讯。那么小编同时在网上网罗了一些关于“python codecs模块””的相关文章,希望我们能喜欢,咱们一起来学习一下吧!

Python中的模块

当我们的代码量达到一定程度时,如果全写在一个文件中将不利于阅读和维护,也会显得程序比较臃肿。这个时候我们会想,如果不把所用的功能都写在一个文件,而是像写函数一样把他们根据功能类别分为若干个文件保存,这样在用到某一个功能时再调用保存它的文件能够让整个程序逻辑更清晰,同时也方便阅读和维护。

Python中的代码由简单到复杂的模式大概为这样:

单个命令->代码块->函数->类->模块

不难发现,随着代码复杂程度的增加,我们需要用更灵活的方式储存代码,尽量减少不必要的代码重复。

模块的定义与引用都十分简单,首先我新建了两个文件,一个是写了具体功能的模块,另一个则是负责调用该模块。

引用模块的关键词是import,而模块名称则为文件名,当我使用import关键词引用support模块时,Python会在当前文件目录下寻找support.py这个文件,然后将它引入到testMoudle.py文件中去,如果觉得不太好懂,可以理解为Python将support.py中的代码复制了一份到testMoudle.py中,但是两个文件本身其实没有改变。

调用模块中的函数和类相似,是以 模块名.函数名()这种方式。

From...import 关键字

有的时候我们不希望把整个模块都引入进来,而是想只引入某些函数,那么这个时候就可以使用from...import这种格式引入

常用内建模块刚才说了当我们使用import关键字引用模块时,Python会自动在当前目录下寻找对应的文件,那么如果当前目录下没有这个文件怎么办?

Python本身其实已经帮我们写好了很多模块,当import引用的模块无法在当前目录下找到时,Python会在其安装目录下的lib文件夹中继续找。

这个文件夹下的模块属于Python安装后自带的,称为内建模块。

比较常用的内建模块:

Base64

base64.b64encode(s, altchars=None)

对 bytes-like object s 进行 Base64 编码,并返回编码后的 bytes。

可选项 altchars 必须是一个长 2 字节的 bytes-like object,它指定了用于替换 + 和 / 的字符。这允许应用程序生成 URL 或文件系统安全的 Base64 字符串。默认值是 None,使用标准 Base64 字母表。

base64.b64decode(s, altchars=None, validate=False)

解码 Base64 编码过的 bytes-like object 或 ASCII 字符串 s 并返回解码过的 bytes。

可选项 altchars 必须是一个长 2 字节的 bytes-like object,它指定了用于替换 + 和 / 的字符。

如果 s 被不正确地填写,一个 binascii.Error 错误将被抛出。

如果 validate 值为 False (默认情况),则在填充检查前,将丢弃既不在标准 base-64 字母表之中也不在备用字母表中的字符。如果 validate 为 True,这些非 base64 字符将导致 binascii.Error。

base64.urlsafe_b64encode(s)

编码 bytes-like object s,使用 URL 与文件系统安全的字母表,使用 - 以及 _ 代替标准 Base64 字母表中的 + 和 /。返回编码过的 bytes。结果中可能包含 =。

base64.urlsafe_b64decode(s)

解码上述加密。

Math

math模块主要用于处理一些专业的数学运算

Time

Time模块用于处理时间和日期

常用外部模块

除了Python内建模块之外,Python还有非常多的第三方模块,在pypi网站可以看到所有可使用的第三方公开模块

然后使用pip下载安装想要的模块(这里我因为本地同时安装了python2.7和python3.7所以pip做了重命名区分)

Tkinter图形化界面Pillow

pillow是一个图形处理模块,可以实现常用的裁剪,模糊,输出文字等功能。

from PIL import Image

im = Image.open('image.jpeg')

w,h = im.size

print('Original image size:%s %s' % (w,h))

im.thumbnail((w//2, h//2))

print('Resize image to: %s %s' % (w//2,h//2))

im.save('thumbnial.jpg','jpeg')

模糊效果

from PIL import Image,ImageFilter

import os

im = Image.open('image.jpeg')

im2 = im.filter(ImageFilter.BLUR)

im2.save('blur.jpg','jpeg')

if os.path.exists('blur.jpg'):

print('success!')

requests

requests用来处理URL资源。

get()

使用requests.get('url')来实现一个get访问功能。

>>> import requests

>>> r = requests.get(';, auth=('user', 'pass'))

>>> r.status_code

200

>>> r.headers['content-type']

'application/json; charset=utf8'

>>> r.encoding

'utf-8'

>>> r.text

u'{"type":"User"...'

>>> r.json()

{u'disk_usage': 368627, u'private_gists': 484, ...}

requests.status_code获取状态码

requests.headers['']获取头信息

...

如果url带参数,则可以设置get的第二个参数params,传入类型为dict.

requests.content`可以获取网页的bytes对象。

requests.json`可以直接 获取JSON格式数据,返回值为dict.

post()

post请求:

>>> r = requests.post(';, data={'form_email': 'abc@example.com', 'form_password': '123456'})

文件上传:

>>> upload_files = {'file': open('report.xls', 'rb')}

>>> r = requests.post(url, files=upload_files)

此外,还有put(),delete()方法,使用方法类似。

如果想要访问时带上cookie,只需要准备一个dict传入cookie参数即可。

>>> cs = {'token': '12345', 'status': 'working'}

>>> r = requests.get(url, cookies=cs)

标签: #python codecs模块