python中的模块和包

python中的模块和包,第1张

🌞欢迎来到机器学习的世界 
🌈博客主页:卿云阁

💌欢迎关注🎉点赞👍收藏⭐️留言📝

🌟本文由卿云阁原创!

🌠本阶段属于练气阶段,希望各位仙友顺利完成突破

📆首发时间:🌹2021年3月12日🌹

✉️希望可以和大家一起完成进阶之路!

🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!


目录

        🍈 一、模块和包

🍊二,什么是包

🍋三、常见的python模块

🍈 一、模块和包 1.1什么是模块 Python 中,⼀个 .py ⽂件就可以称之为 ⼀个模块(Module 模块分类 模块分为三种: 内置标准模块 (⼜称标准库)执⾏ help(‘modules’) 查看所有 python ⾃带模块列表 第三⽅开源模块 可通过 pip install 模块名 联⽹安装 ⾃定义模块 模块导⼊ & 调⽤ 导⼊模块有以下⼏种⽅式:
import module_a #导⼊
from module import xx # 导⼊某个模块下的某个⽅法 or ⼦模块
from module.xx.xx import xx as rename #导⼊后⼀个⽅法后重命令
from module.xx.xx import * #导⼊⼀个模块下的所有⽅法,不建议使⽤
module_a.xxx #调⽤
注意:模块⼀旦被调⽤,即相当于执⾏了另外⼀个 py ⽂件⾥的代码
# 导入sys整个模块
import sys
# 使用sys模块名作为前缀来访问模块中的成员
print(sys.argv[0])


#结果
C:/Users/Administrator/Desktop/test.py
sys 模块下的 argv 变量用于获取运行 Python 程序的命令行参数,其中 argv[0] 用于获取当前 Python 程序的存储路径
等价于
# 导入sys模块的argv成员
from sys import argv
# 使用导入成员的语法,直接使用成员名访问
print(argv[0])
1.2 ⾃定义模块

test.py

import my_module
my_module.sayhi("qinyun")

my_module.py

print("my first module")
def sayhi(name):
    print("大家好,我的名字是{0}".format(name))

结果

my first module
大家好,我的名字是qinyun
1.3 模块的查找路径 有没有发现,⾃⼰写的模块只能在当前路径下的程序⾥才能导⼊,换⼀个⽬录再导⼊⾃⼰的模块就报错 说找不到了, 这是为什么? 这与导⼊模块的查找路径有关模板的查找路径。
import sys
print(sys.path)

['C:\Users\Administrator\Desktop', 
 'C:\Users\Administrator\Desktop', 
 'C:\Program Files\Python37\python37.zip', 
 'C:\Program Files\Python37\DLLs', 
 'C:\Program Files\Python37\lib', 
 'C:\Program Files\Python37', 
 'C:\Users\Administrator\AppData\Roaming\Python\Python37\site-packages',
 'C:\Program Files\Python37\lib\site-packages']
输出(注意不同的电脑可能输出的不太⼀样) 你导⼊⼀个模块时, Python 解释器会按照上⾯列表顺序去依次到每个⽬录下去匹配你要导⼊的模块名, 只要在⼀个⽬录下匹配到了该模块名,就⽴刻导⼊,不再继续往后找。 注意列表第⼀个元素为空,即代表当前⽬录,所以你⾃⼰定义的模块在当前⽬录会被优先导⼊。 我们⾃⼰创建的模块若想在任何地⽅都能调⽤,那就得确保你的模块⽂件⾄少在模块路径的查找列表 中。 我们⼀般把⾃⼰写的模块放在⼀个带有“site-packages” 字样的⽬录⾥,我们从⽹上下载安装的各种第三 ⽅的模块⼀般都放在这个⽬录。 1.43⽅开源模块安装 可以直接通过 pip 安装
pip3 install paramiko #paramiko 是模块名pip命令会⾃动下载模块包并完成安装。
软件⼀般会被⾃动安装你 python 安装⽬录的这个⼦⽬录⾥
/your_python_install_path/3.6/lib/python3.6/site-packages

pip 命令默认会连接在国外的 python 官⽅服务器下载,速度⽐较慢,你还可以使⽤国内的⾖瓣源,数据 会定期同步国外官⽹,速度快好多 -i 后⾯跟的是⾖瓣源地址 —trusted-host 得加上,是通过⽹站 https 安全验证⽤的
pip install -i http://pypi.douban.com/simple/sayhi --trusted-host
pypi.douban.com #sayhi是模块名
使⽤ 下载后,直接导⼊使⽤就可以,跟⾃带的模块调⽤⽅法⽆差

🍊二,什么是包

其实,一个包就是一个文件目录,你可以把同一个业务线的文件放在一起


🍋三、常见的python模块

2.4 random随机数 程序中有很多地⽅需要⽤到随机字符,⽐如登录⽹站的随机验证码,通过 random 模块可以很容易⽣成 随机字符串

>>> random.randrange(1,10) #返回1-10之间的⼀个随机数,不包括10
>>> random.randint(1,10) #返回1-10之间的⼀个随机数,包括10
>>> random.randrange(0, 100, 2) #随机选取0到100间的偶数
>>> random.random() #返回⼀个随机浮点数
>>> import random
>>> random.choice('abcdefghi')
'i'
>>> random.sample('abcdefghij',3) #从多个字符中选取特定数量的字符
['h', 'c', 'f']
>>> import string
>>> ''.join(random.sample(string.ascii_lowercase + string.digits, 6))
'4fvda1'
#洗牌
>>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> random.shuffle(a)
>>> a [3, 0, 7, 2, 1, 6, 5, 8, 9, 4]
2.5 序列化json模块 什么是 Json? JSON (JavaScriptObject Notation, JS 对象简谱 ) 是⼀种轻量级的数据交换格式。它采⽤完全独⽴于编程 语⾔的⽂本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语⾔。 易于 ⼈阅读和编写,同时也易于机器解析和⽣成,并有效地提升⽹络传输效率。Json的作⽤是⽤于不同语⾔接⼝间的数据交换,⽐如你把 python list dict 直接扔给 javascript, 它是解 析不了的。 2 个语⾔互相谁也不认识。 Json 就像是计算机界的英语 ,可以帮各个语⾔之间实现数据类型 的相互转换。 python的序列化

>>> names=["qingyun","wenzhu","猪猪侠"]
>>> names
['qingyun', '猪猪侠', 'wenzhu']
>>> import json
>>> json.dumps(names)
'["qingyun", "wenzhu", "\\u732a\\u732a\\u4fa0"]'
JSON ⽀持的数据类型 Python 中的字符串、数字、列表、字典、集合、布尔 类型,都可以被序列化成 JSON 字符串,被其它任何编程语⾔解析。 什么是序列化? 序列化是指把内存⾥的数据类型转变成字符串,以使其能存储到硬盘或通过⽹络传输到远程,因为硬盘 或⽹络传输时只能接受bytes 为什么要序列化? 你打游戏过程中,打累了,停下来,关掉游戏、想过 2 天再玩, 2 天之后,游戏⼜从你上次停⽌的地⽅继 续运⾏,你上次游戏的进度肯定保存在硬盘上了,是以何种形式呢?游戏过程中产⽣的很多临时数据是不规律的,可能在你关掉游戏时正好有10 个列表, 3 个嵌套字典的数据集合在内存⾥,需要存下来?你 如何存?把列表变成⽂件⾥的多⾏多列形式?那嵌套字典呢?根本没法存。所以,若是有种办法可以直 接把内存数据存到硬盘上,下次程序再启动,再从硬盘上读回来,还是原来的格式的话,那是极好的。 ⽤于序列化的两个模块 json ,⽤于字符串 和 python 数据类型间进⾏转换 pickle ,⽤于 python 特有的类型 和 python 的数据类型间进⾏转换 pickle 模块提供了四个功能: dumps dump loads 、load
import pickle
data = {'k1':123,'k2':'Hello'}
# pickle.dumps 将数据通过特殊的形式转换位只有python语⾔认识的字符串
p_str = pickle.dumps(data) # 注意dumps会把数据变成bytes格式
print(p_str)
# pickle.dump 将数据通过特殊的形式转换位只有python语⾔认识的字符串,并写⼊⽂件
with open('result.pk',"wb") as fp:
 pickle.dump(data,fp)
# pickle.load 从⽂件⾥加载
f = open("result.pk","rb")
d = pickle.load(f)
print(d)
json Json 模块也提供了四个功能: dumps dump loads load ,⽤法跟 pickle ⼀致 json vs pickle: JSON: 优点:跨语⾔ ( 不同语⾔间的数据传递可⽤ json 交接 ) 、体积⼩ 缺点:只能⽀持 int\str\list\tuple\dict Pickle: 优点:专为 python 设计,⽀持 python 所有的数据类型 缺点:只能在 python 中使⽤,存储数据占空间⼤ 2.6 Excel处理模块 3 ⽅开源模块 , 安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple openpyxl

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/739519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存