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)--面向对象部分
面向对象: 世间万物,皆可分类.--------------------手机<--------------某一个分类 世间万物,皆为对象.--------------------我的手机< ...
随机推荐
- Android常见问题——Genymotion无法启动问题
在官网下载了Genymotion和VirturalBox的合集安装之后启动模拟器的时候发现启动不了(默认下载,啥都没干),在网上找了一些方法,也没有解决,最后偶然看到一种方法才解决的,先看一下具体的问 ...
- java小知识点 2015/10/6
java中length,length(),size()区别: 1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度 2 java中的length()方法是针对字 ...
- vc 编译器的一些精典报错
本篇将平时遇到的一些编译错误 , 记录于此 , 同时帖上分析
- CentOS 7.4中firewall防火墙详解和配置以及切换为iptables防火墙
转载:https://blog.csdn.net/xlgen157387/article/details/52672988 一.firewall介绍 CentOS 7中防火墙是一个非常的强大的功能,在 ...
- Servlet实现验证码图片(一)
Servlet实现数字字母验证码图片(一): 生成验证码图片主要用到了一个BufferedImage类,如下:
- vmware linux nat模式设置静态ip
网上资料很多,但是都不怎么实用,这里给大家总结一下.nat模式上网.因为nat本身就能上网为什么还要设置ip.这有点自找麻烦.但是在集群这是必须的.要么你搭建伪分布,要么至少具有三台物理机器.为了节省 ...
- python笔记-9(subprocess模块、面向对象、socket入门)
一.subprocess 模块 1.了解os.system()与os.popen的区别及不足 1.1 os.system()可以执行系统指令,将结果直接输出到屏幕,同时可以将指令是否执行成功的状态赋值 ...
- Android中执行的错误:java.lang.UnsatisfiedLinkError: Couldn't load locSDK3: findLibrary returned null.
今天在使用百度地图的时候执行发现报错: 明明已经增加了liblocSDK3.so.但总是无法定位.提示错误java.lang.UnsatisfiedLinkError: Couldn't load l ...
- Linux 权限使用 777 真的好吗?
Linux 权限使用 777 真的好吗? 开发环境当然不是问题,但是会造成一个习惯,到生产时也容易经常配置成 777. 777 权限可以让你的项目出现很大安全问题.1 linux 775和777权限有 ...
- lbypmall虚拟主机的设置
虚拟机配置不完整,导致访问是样式路径不正确,问题可能是config.inc.php配置不正确 1.修改/etc/php.ini 访问目录限制 open_basedir =/home/upload/:/ ...