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-----AVFoundation框架的功能详解
使用AVFoundation拍照和录制视频 需要开发自定义的拍照和录制视频功能,可借助于AVFoundation框架来实现,该框架提供了大量的类来完成拍照和录制视频.主要使用如下类: AVCaptur ...
- grub2 设置Windows为默认启动系统
1. 首先找到Windows的菜单menuentry.<blockquote># cat /boot/grub2/grub.cfg | grep Windows 结果: menuentry ...
- hiho1514 偶像的条件 lower_bound
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi的学校正面临着废校的大危机.面对学校的危机,小Hi同学们决定从ABC三个班中各挑出一名同学成为偶像. 成为偶像团体的 ...
- 使用neon 开发nodejs addon
备注:开发使用的是mac 系统,需要安装rust nodejs .python2.7 Xcode 1. 安装neon npm install -g neon-cli 2. 创建简单项目 neon ...
- php array_push 与 $arr[]=$value 性能比较
1.array_push方法 array_push 方法,将一个或多个元素压入数组的末尾. int array_push ( array &$array , mixed $var [, mix ...
- c++重在运算符
运算符函数的定义与其他函数的定义类似,惟一的区别是运算符函数的函数名是由关键字operator和其后要重载的运算符符号构成的.运算符函数定义的一般格式如下: <返回类型说明符> opera ...
- bzoj 3158 千钧一发——网络流
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3158 发现偶数之间一定满足第二个条件:奇数之间一定满足第一个条件 ( \( (2m+1)^{ ...
- bzoj4557侦查守卫
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4557 树形DP.和“河流”有点像,也有一个类似“承诺”的东西. 就是用 f 表示当前节点向下 ...
- Requirejs简单介绍
具体详情请进入官网查阅:http://requirejs.org 一.什么是Requirejs RequireJS是一个非常小巧的JavaScript模块载入框架,是AMD规范最好的实现者之一. 二. ...
- golang的https服务器
先生成ssl证书 openssl genrsa - openssl req - 然后,大概这样 package main import ( "log" "net/http ...