os sys hashlib 模块
os模块:与操作系统交互:
os 模块:跟操作系统交互的
import os
# 要会现学现用的:
os.makedirs('a/b/c/d/e/f') #递归创建文件夹
os.removedirs('a/b/c/d/e/f') #直接删除不保存,当某个文件夹里有文件存在的时候就不删除了(文件保护).
os.listdir(r'F:\Python fullstack\19期)
#查看此目录下所有文件,列表格式输出
os.mkdir('a') #创建一个单个的文件夹
os.rmdir('a') #删除单个文件夹,文件夹里有内容的时候不删除,报错,文件非空
***
os.rename('旧名字','新名字') 重命名文件或者目录
os.remove('222.py') #删除文件,参数文件的名字,当前目录,否则加绝对路径
***
with open() #创建文件
***
print(os.getcwd()) #文件的当前路径
os.chdir(r'文件路径')#切换文件路径
os.curdir #当前目录
os.pardir #上一级,父级
os.chdir(os.pardir)
print(os.getcwd())
***
print(repr(os.sep)) #*当前操作系统的分隔符
print(rer(os.linesep)) #*当前操作系统的终止符 \r键盘上的回车键,\n文件上的回车键,\r\n,http,协议请求的时候会用到.
print(os.pathsep) #环境变量里的分隔符,windows是;,linux是:
print(os.name) #windows是nt,linux是posix
os.system('dir')
***
ret = os.popen('dir').read() #通过代码向操作系统发出指令
print(ret)
print(os.environ) #操作系统的环境变量
***
# 路径:
***
print(os.path.abs(r'笔记')) #返回一个path规范化的绝对路径
***
print(os.path.split(r'F:\Python fullstack\19期'))
#结果:('F:\Python fullstack','19期')将本文件名与路径分割,以元祖形式返回,分为两个元素
***
print(os.path.basename(r'F:\Python fullstack','19期'))
#结果('19期'),返回文件名,本名
print(os.path.dirname(r'F:\Python fullstack\19期')) #文件的路径
#F:\Python fullstack\
1 我指定一个盘符,显示这个盘符下的所有内容,让用户输入要切换到哪个地方
print(os.listdir(r'路径')) #显示当前路径下所有内容
url = input('>>>') #输入想要进入的目录
os.chdir(r'路径\\' + url) #目录切换,把路径扔进去
print(os.getcwd())
ret = os.getcwd() #查看当前路径,返回值存到ret
print(os.listdir(ret)) #列出当前路径下所有内容
*********************重要
print(os.path.join(r'路径',url))
ret = os.path.join(r'路径',url) #查看当前路径,返回值存到ret
print(os.listdir(ret)) #列出当前路径下所有内容
*********************重要
os.path.join('第一个参数从磁盘开始的一个路径','要去的路径')
**********************重要
import os
BASE_dir = os.path.abspath(__file__)
print('BASE_dir')
print(os.path.join(BASE_dir,'小王.py'))
**********************重要
sys模块 与python解释器交互:
import sys,os
sys.path #python在找模块的一个环境变量
lst = sys.path
print(lst)
lst.clear()
print(sys.platform) #返回操作系统信息的 win32
if sys.platform == 'win32':
os.popen('dir') #windows
else:
os.popen('ls') #'linux'
sys.version #获取python解释程序的版本信息
**********************重要
import sys
print(sys.argv)
#只能在终端里用,在不修改源代码的情况下上传参数
**********************重要
hashlib 模块:(加密模块)
import hashlib
md5 = hashlib.md5()
md5.update('你好啊'.encode('utf-8'))
print(md5.hexdigest())
124756ef340daf80196b4124686d651c
import hashlib
md5 = hashlib.md5('salt'.encode('utf-8')) #加盐(改变)原始md5值,增加撞库破解难度
md5.update('你好啊'.encode('utf-8'))
print(md5.hexdigest())
124756ef340daf80196b4124686d651c
6419a703904a8abe856bb10b5439729b
import hashlib
s1 = hashlib.sha1('a'.encode('utf-8'))
s1.update('你哈'.encode('utf-8'))
print(s1.hexdigest())
c9dbe3cd4bc5844de1d30403d98eeeec6008bcb2
7e81cf96d8605215ad366063cd2abf7c6726018b
安全 越长越慢
import hashlib
s1 = hashlib.sha256()
s1.update('你哈'.encode('utf-8'))
print(s1.hexdigest())
# b68fa16c10ea4f37dff491e4409275f0a879f53045803384c57e6842b4ec1850
# 安全 越长越慢
import hashlib
s1 = hashlib.sha512()
s1.update('你哈'.encode('utf-8'))
print(s1.hexdigest())
# 安全 越长越慢
加密
文件下载的时候,同过生成的哈希值来检验文件的一致性
posted on 2019-01-18 15:13 antigeneral 阅读(139) 评论(0) 编辑 收藏 举报