模块,用一坨代码实现了某个功能的代码集合。
类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合。而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个 .py 文件组成的代码集合就称为模块。
如:os 是系统相关的模块;file是文件操作相关的模块
模块分为三种:
- 自定义模块
- 内置模块
- 开源模块
对于我们编写的以.py结尾的文件,我们都可以当做自定义模块来调用,调用之前需要先导入,然后即可使用模块中定义的功能。
导入模块
import 模块名
from 文件夹 import 模块名
from 文件夹 import 模块名 as 别名 #对导入的模块重命名在导入模块的时候,Python会根据路径去寻找,路径存储在sys.path中。
>>> import sys >>> sys.path ['', 'C:\Windows\system32\python27.zip', 'C:\Python27\DLLs', 'C:\Python27 lib', 'C:\Python27\lib\plat-win', 'C:\Python27\lib\lib-tk', 'C:\Python27 ', 'C:\Python27\lib\site-packages'] >>>
第一个空格表示在当前文件夹中寻找,如果找不到依次按照列表的路径寻找。一般我们将第三方模块放置在C:\Python27\lib\site-packages(Linux为/
usr
/
lib
/
python2.
7
/
site
-
packages
/
)
如果sys.path路径列表没有你想要的路径,可以通过 sys.path.append('路径') 添加。
通过os模块可以获取各种目录,例如:
import sys import os pre_path = os.path.abspath('../') sys.path.append(pre_path)
安装第三方库
下载安装有两种方式:
1. pip3 install requests
yum
apt-get
2. 源码安装:下载源码,解压后切换到当前目录
执行python setup.py install
下载源码 解压源码 进入目录 编译源码 python setup.py build 安装源码 python setup.py install
在下载安装源码的时候可能会用到gcc编译和Python开发环境,需要先执行:
yum install gcc
yum install python
-
devel
或
apt
-
get python
-
dev
Python内置模块
一、sys
提供和系统有关的操作命令
sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxint 最大的Int值 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 sys.stdout.write('please:') val = sys.stdin.readline()[:-1]
二、haslib
用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
import hashlib # ######## md5 ######## hash = hashlib.md5() hash.update('admin') print hash.hexdigest() # ######## sha1 ######## hash = hashlib.sha1() hash.update('admin') print hash.hexdigest() # ######## sha256 ######## hash = hashlib.sha256() hash.update('admin') print hash.hexdigest() # ######## sha384 ######## hash = hashlib.sha384() hash.update('admin') print hash.hexdigest() # ######## sha512 ######## hash = hashlib.sha512() hash.update('admin') print hash.hexdigest()
为了避免通过撞库来反解加密信息,我们可以加key值为加密信息加‘盐’
import hashlib
# ######## md5 ########
hash = hashlib.md5('898oaFs09f') #括号内的内容相当于‘盐’
hash.update('admin')
print hash.hexdigest()
还有一些内置模块之前写到过,可以转到其他博客看看
python 内置模块-re
Python 内置模块:os模块
python内置模块-json和pickle
python内置模块-random
Python内置模块-time && datatime
python 内置模块--collections
模块功能
__name__ 只有在执行当前文件的时候,才等于__main__
__file__ #当前文件的路径
__doc__ #注释
__cache__ #pyc文件