Python中的模块(python里模块)
off999 2024-10-02 18:41 18 浏览 0 评论
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('https://api.github.com/user', 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('https://accounts.douban.com/login', 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函数参数和返回值类型:让你的代码更清晰、更健壮
-
在Python开发中,你是否遇到过这些抓狂时刻?同事写的函数参数类型全靠猜调试两小时发现传了字符串给数值计算函数重构代码时不知道函数返回的是列表还是字典今天教你两招,彻底解决类型混乱问题!让你的...
- 有公司内部竟然禁用了python开发,软件开发何去何从?
-
今天有网友在某社交平台发文:有公司内部竟然禁止了python开发!帖子没几行,评论却炸锅了。有的说“太正常,Python本就不适合做大项目”,还有的反驳“飞书全员用Python”。暂且不说这家公司...
- 写 Python 七年才发现的七件事:真正提高生产力的脚本思路
-
如果你已经用Python写了不少脚本,却总觉得代码只是“能跑”,这篇文章或许会刷新你对这门语言的认知。以下七个思路全部来自一线实战,没有花哨的概念,只有可落地的工具与习惯。它们曾帮我省下大量无意义...
- 用Python写一个A*搜索算法含注释说明
-
大家好!我是幻化意识流。今天我们用Python写一个A*搜索算法的代码,我做了注释说明,欢迎大家一起学习:importheapq#定义搜索节点类,包括当前状态、从初始状态到该状态的代价g、从该状态...
- 使用python制作一个贪吃蛇游戏,并为每一句添加注释方便学习
-
今天来设计一个贪吃蛇的经典小游戏。先介绍下核心代码功能(源代码请往最后面拉):游戏功能:-四个难度等级:简单(8FPS)、中等(12FPS)、困难(18FPS)、专家(25FPS)-美...
- Python 之父 Guido van Rossum 宣布退休
-
Python之父GuidovanRossum在推特公布了自己从Dropbox公司离职的消息,并表示已经退休。他还提到自己在Dropbox担任工程师期间学到了很多东西——Python的类型注解(T...
- 4 个早该掌握的 Python 类型注解技巧
-
在Python的开发过程中,类型注解常常被忽视。但当面对一段缺乏类型提示、逻辑复杂的代码时,理解和维护成本会迅速上升,极易陷入“阅读地狱”。本文整理了4个关于Python类型注解的重要技巧...
- 让你的Python代码更易读:7个提升函数可读性的实用技巧
-
如果你正在阅读这篇文章,很可能你已经用Python编程有一段时间了。今天,让我们聊聊可以提升你编程水平的一件事:编写易读的函数。请想一想:我们花在阅读代码上的时间大约是写代码的10倍。所以,每当你创建...
- Python异常模块和包
-
异常当检测到一个错误时,Python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的“异常”,也就是我们常说的BUG例如:以`r`方式打开一个不存在的文件。f=open('...
- 别再被 return 坑了!一文吃透 Python return 语句常见错误与调试方法
-
Pythonreturn语句常见错误与调试方法(结构化详解)一.语法错误:遗漏return或返回值类型错误错误场景pythondefadd(a,b):print(a+b)...
- Python数据校验不再难:Pydantic库的工程化实践指南
-
在FastAPI框架横扫Python后端开发领域的今天,其默认集成的Pydantic库正成为处理数据验证的黄金标准。这个看似简单的库究竟隐藏着哪些让开发者爱不释手的能力?本文将通过真实项目案例,带您解...
- python防诈骗的脚本带注释信息
-
以下是一个简单但功能完整的防诈骗脚本,包含URL检测、文本分析和风险评估功能。代码结构清晰,带有详细注释,适合作为个人或家庭防诈骗工具使用。这个脚本具有以下功能:文本诈骗风险分析:检测常见诈骗关键...
- Python判断语句
-
布尔类型和比较运算符布尔类型的定义:布尔类型只有两个值:True和False可以通过定义变量存储布尔类型数据:变量名称=布尔类型值(True/False)布尔类型不仅可以自行定义,同时也可通过...
- 使用python编写俄罗斯方块小游戏并为每一句添加注释,方便学习
-
先看下学习指导#俄罗斯方块游戏开发-Python学习指导##项目概述这个俄罗斯方块游戏是一个完整的Python项目,涵盖了以下重要的编程概念:-面向对象编程(OOP)-游戏开发基础-数据...
- Python十大技巧:不掌握这些,你可能一直在做无用功!
-
在编程的世界里,掌握一门语言只是起点,如何写出优雅、高效的代码才是真功夫。Python作为最受欢迎的编程语言之一,拥有简洁明了的语法,但要想真正精通这门语言,还需要掌握一些实用的高级技巧。一、列表推导...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python读取文件夹下所有文件 (59)
- java调用python脚本 (56)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)