第十篇、模块一、sys\os\hashlib模块的应用

一、模块分为三种

1)自定义模块

2)第三方模块

3)内置模块

如何导入模块?

下面两种:

1)import 模块名字  as 别名(重新给模块命名)

2)from  模块名字  import 功能(函数/类名字)  as  别名(重新给功能命名)

怎么来选择?如果是简单的导入就用第一个

二、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]

复制代码

如果自己写一个模块向北导入,那么需要将这个模块添加到sys.path路径里面,由于sys.path是一个列表,所以可以用列表的方法

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import re
import sys
# sys.path.append("D:")
for i in sys.path:
    print(i)

三、os 

系统级别的操作都在这里

os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname")  改变当前脚本工作目录;相当于shell下cd
os.curdir  返回当前目录: ('.')
os.pardir  获取当前目录的父目录字符串名:('..')
os.makedirs('dirname1/dirname2')    可生成多层递归目录
os.removedirs('dirname1')    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname')    生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname')    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname')    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove()  删除一个文件
os.rename("oldname","newname")  重命名文件/目录
os.stat('path/filename')  获取文件/目录信息
os.sep    输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep    输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep    输出用于分割文件路径的字符串
os.name    输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command")  运行shell命令,直接显示
os.environ  获取系统环境变量
os.path.abspath(path)  返回path规范化的绝对路径
os.path.split(path)  将path分割成目录和文件名二元组返回
os.path.dirname(path)  返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path)  返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path)  如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path)  如果path是绝对路径,返回True
os.path.isfile(path)  如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path)  如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path)  返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间

五、加密模块hashlib

首先为什么要用加密模块:

12年初csdn网站被黑客攻击,6428632个用户帐号密码遭泄露。被“拖库”并且没有被曝光的网站数不胜数。看资料显示所有的用户密码都是明文的。

由于以前的加密算法存在缺陷:可以通过撞库反解,所以,有必要对加密算法中添加自定义key再来做加密。

代码如下:

import hashlib
 
# ######## md5 ########
 
hash = hashlib.md5('898oaFs09f')
hash.update('admin')
print hash.hexdigest()

还有另一种加密方式:

1 import hmac
2 h = hmac.new('wueiqi')
3 h.update('hellowo')
4 print h.hexdigest()

 

posted @ 2017-02-22 11:42  pi-pi-miao-miao  阅读(218)  评论(0编辑  收藏  举报