Python小知识点(4)--模块相关
1.模块:
定义:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是以.py结尾的python文件(文件名:test.py,对应的模块名:test)。
包:用来从逻辑上组织模块的,本质就是文件夹(目录),必须带有一个__init__.py文件。
导入包的本质就是解释这个包下面的__init__.py文件。
在某个模块下需要导入某一个包下面的内容,需要在包下面的__init__.py文件中修改导入方式,语法为:from . import module_name #.表示当前路径下
模块导入方法:
Import module_name(模块名)===>>实质导出的是模块名称 name.test()
Import module_name,m1,m2
from module(模块) import * (函数)===>实质是把代码复制到当前位置(不建议 )
from module import module_name,m1,m2
from module import module_name as modele_name_from_wfb (as取别名)
import本质(路径搜索和搜索路径):
(1)Import module_name ===》把导入的模块的全部代码统一解释一遍,然后赋值给module_name这个变量,例如:module_name=”modele_name.py all code"。【module_name.name】
Import module_name---->执行module_name.py---->module_name.py的路径---sys.path
(2)from module import module_name ==》把module 模块中的module_name部分放到当前文件执行一遍。【name()】
总结:导入模块的本质就是把python文件解释一遍。
2.导入不在同一目录下的文件或者包:
由于导入模块或包的实质是在系统的环境变量(路径)下寻找所导入的文件或者是否存在,存在即可正确执行,否则则需要将文件或者包的绝对路径动态加入到系统的环境变量中。使用sys,os模块
Import sys,os
lujin=os.path.dirname(os.path.abspath(__file__))
Sys.path.append(lujin)
目的是:在当前文件中获得指定文件或包的路径(父级目录)。
解释:
os.path.abspath(__file__) 获取当前文件的绝对路径
os.path.dirname:获取当前文件的父级目录。
Sys.path.append(lujin):将所获取的路径加入到系统环境变量中。
3.导入优化
(1) Import module_name
module_name.name()。。
实质:先找模块,在找该模块下的方法.【查找多了效率不高。】
(2) from module_name import name
name() 。。
实质:把模块中的方法拿到指定位置执行一遍。相比import少了多次查找的过程.
4.模块分类
a.标准库(内置)
1. time 和datetime.
gmtime():获取标准时间(0时区)
localtime():获取本地时间(东八区)
time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()) # %Y对应tm_year %m对应tm.mon


5.json和pickle模块
Json模块提供了四个功能:dumps、dump、loads、load
pickle模块提供了四个功能:dumps、dump、loads、load
.json和pickle模块只建议dumps和loads一次,否则需要根据之前的顺序依次取出来很麻烦,dumps序列化为字符串。
6. shelve模块
shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式,【可理解为可以实现多次的dumps和、loads】
使用=》
import shelve
d = shelve.open('shelve_test') #打开一个文件
存:d[“key”]=value
取:d,get(“key”)
加密模块
hashlib模块
对中/英文的加密:
import hashlib
m=hashlib.md5()
m.update(b"Hello")
m.update("It's me 你好".encode(encoding=’utf-8’))
对信息的加密:
import hmac
m=hmac.new(b'天王盖地虎', '宝塔镇河妖'.encode(encoding=’utf-8’)
b'天王盖地虎':必须是bytes类型
'宝塔镇河妖'.encode(encoding=’utf-8’:对含有中文的需要进行编码(encode)成二进制。主要是有无b的区别。
Python小知识点(4)--模块相关的更多相关文章
- python小知识点总结
小知识点总结 1.python2和python3的区别 python2 python3 默认编码 ascii utf-8 input() raw_input() input() print 可以不 ...
- python 小技巧(import模块、查询类继承关系、安装包)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在这里列举一些我使用Python时积累的小技巧.这些技巧是我在使用Python过程 ...
- Python小知识点(3)--装饰器
(1)装饰器含参数,被装饰函数不含(含)参数 实例代码如下: import time # 装饰器函数 def wrapper(func): def done(*args,**kwargs): star ...
- Python小知识点+保留字
注意 !/usr/bin/python # -- coding: UTF-8 -- #中文编码 Python空行:函数之间或类的方法之间用空行分隔,表示一段新的代码的开始 Python注释:单行注释采 ...
- python小知识- webbrowser模块 + join()方法
一.join描述 将序列中的元素以指定的字符连接生成一个新的字符串. 语法 语法: ‘sep’.join(seq) 参数说明: sep:分隔符.可以为空 seq:要连接的元素序列.字符串.元组.字典 ...
- python小游戏-pygame模块
一.tkinter模块的GUI 基本上使用tkinter来开发GUI应用需要以下5个步骤: 导入tkinter模块中我们需要的东西. 创建一个顶层窗口对象并用它来承载整个GUI应用. 在顶层窗口对象上 ...
- python小知识点
问题:求列表中每个元素的元素次方之和>>> a=[1,2,3,4]>>> k=len(a)第一种解法# s=0# for x in a:# ...
- python小知识点随笔
可能会有不局限于Python语言的内容,文中“>>>”表示结果,而不是命令行交互的提示符 1.关于字符串编码 ASCII编码 占用一个字节 二进制11111111=十进制255 所以 ...
- Python小知识点(5)--面向对象部分
面向对象: 世间万物,皆可分类.--------------------手机<--------------某一个分类 世间万物,皆为对象.--------------------我的手机< ...
随机推荐
- iOS中数组遍历的方法及比较
数组遍历是编码中很常见的一种需求,我们来扒一拔iOS里面都有什么样的方法来实现,有什么特点. 因为ios是兼容C语言的,所以c语言里面的最最常见的for循环遍历是没有问题的. 本文中用的数组是获取的系 ...
- Linux基础二(修改ip地址、修改网关、修改DNS服务器、重新启动网络配置)
网络的初始化 .ip地址的修改(临时生效) 使用ifconfig命令 ifconfig 网卡名 ip地址 netmask 子网掩码 [root@localhost /]# ifconfig eth1 ...
- BZOJ4152 AMPPZ2014 The Captain 【最短路】【贪心】*
BZOJ4152 AMPPZ2014 The Captain Description 给定平面上的n个点,定义(x1,y1)到(x2,y2)的费用为min(|x1-x2|,|y1-y2|),求从1号点 ...
- 实例-系数可配置的fir滤波器
- Thread中,join()方法
Thread中,join()方法的作用是调用线程等待该线程完成后,才能继续用下运行. public static void main(String[] args) throws Interrupted ...
- lapis http verb 处理
1. 同一个url 包含不同的请求(respond_to 进行解决) // 路由格式 match ,通过respond_to 进行实际的http verb 处理 local lapis = requ ...
- drill 数据源配置
1. mongodb { "type":"mongo", "connection":"mongodb://user:passwor ...
- docker windows 2016 安装测试
1. 安装方式 powershell Install-Module-NameDockerMsftProvider-RepositoryPSGallery-Force Install-Pack ...
- springboot: 集成jdbc
1.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www ...
- 容灾管理中的RTO与RPO的关系
在灾难恢复方面,目前业界公认有三个目标值得努力.一是恢复时间,企业能忍受多长时间没有 IT,处于停业状态:二是网络多长时间能够恢复:三是业务层面的恢复.整个恢复过程中,最关键的衡量指标有两个:一个是 ...