文章目录
前言
本篇文章主要介绍os、sys、json、hashlib四种模块的导入与使用,通过案例讲解,帮助大家快速理解
1、os模块
1.1 模块导入
语法格式:
import os
1.2 创建文件夹
语法格式:os.mkdir(文件夹路径)
自动创建一个文件夹,如果文件夹存在会报错
案例:
import os
os.mkdir('文件夹') # 直接写名字会在当前目录下创建文件夹
os.mkdir('D:\文件夹') # 在指定路径下创建文件夹
1.3 判断文件夹路径是否存在
语法格式:
os.path.exists(路径)
,返回 True或False
判断一个路径是否存在,通常用于if语句判断,若文件夹路径不存在就创建,避免报错
案例:
import os
print(os.path.exists('D:\文件夹')) # 若该路径存在,返回True,否则返回False
if not os.path.exists('D:\文件夹'): # 通过判断该文件夹是否存在决定是否创建它
os.mkdir('文件夹')
1.4 将多个路径拼接为一个路径
语法格式:
os.path.join(路径1,路径2,...)
案例:
import os
print(os.path.join('D:\文件夹','666','1.txt'))
输出结果:
D:\文件夹\666\1.txt
说明:
该方法可以适配不同的操作系统(windows、linux、…),这样可以避免不同操作系统因路径格式不同而报错
2、sys模块
2.1 导入模块
语法格式:
import sys
2.2 让程序退出
方法1:
语法格式:
sys exit()
案例:
import sys
print(666) # 输出结果:666
sys.exit() # 程序退出,停止运行
print(888) # 不会运行
方法2:
语法格式:
exit()
案例:
print(666) # 输出结果:666
exit() # 程序退出,停止运行
print(888) # 不会运行
3、json模块
json也是一种
数据格式
,因为python在保存文本类型的数据时只能以字符串的形式保存,这样就导致其它数据类型的数据无法保存;所以我们通常会将其它数据类型的数据转换成json格式的数据
保存,当读取该数据时再将其转换为原有的数据类型
3.1 json数据的作用
- json数据不但可以在不同数据类型间进行转换(字典、列表、字符串、整型、浮点型、布尔、None),还能跨语言交互,充当不同语言间的翻译官;如:java、C、C++
- json数据体积小,性能更佳
3.2 导入模块
语法格式:
import json
3.3 将python中的数据转换成json数据
- 直接转换
语法格式:
json.dumps(python数据)
案例:
import json
list = [666,'哈哈',777]
res = json.dumps(list) # 将列表转换成json数据
print(res)
print(type(res))
输出结果:
[666, "\u54c8\u54c8", 777]
<class 'str'>
说明:
用这种方法直接转换成json数据后,中文无法显示;json数据在python中本质上还是字符串
- 转换后,可以显示中文
语法格式:
json.dumps(python数据,ensure_ascii=False)
案例:
import json
list = [666,'哈哈哈',777]
res = json.dumps(list,ensure_ascii=False) # 将列表转换成json数据且可以显示中文
print(res)
输出结果:
[666, "哈哈哈", 777]
3.4 将json数据转换成python数据
语法格式:
json.loads(json数据)
案例:
import json
list = [666,'哈哈哈',777]
res1 = json.dumps(list,ensure_ascii=False)
print(res1)
print(type(res1))
res2 = json.loads(res1) # 将json数据转换成python数据
print(res2)
print(type(res2))
输出结果:
[666, "哈哈哈", 777]
<class 'str'>
[666, '哈哈哈', 777]
<class 'list'>
3.5 在文件中操作json
- 将python数据转换成json数据后写入文件
语法格式:
方法1:json.dump(python数据,文件对象)
方法2:文件对象.write(json.dumps(python数据))
- 读取文件中的json数据并转换成python数据
语法格式:
方法1:json.load(文件对象)
方法2:json.loads(文件对象.read())
案例:
import json
with open('1.txt','w',encoding='utf-8') as f1:
json.dump('阿豪666',f1)
f1.close()
with open('1.txt','r',encoding='utf-8') as f2:
res = json.load(f2)
print(res) # 输出结果:阿豪666
4、加密模块:hashlib
hash加密算法,许多算法的总称,其中我们常用的是
md5算法
;加密后的得到的数据,我们称为hash值
4.1 md5算法(常用)
4.1.1 作用
- 只要传入的内容不变,得到的hash值必然相同;内容稍微改变,hash值就会改变,这样才能用于文件完整性的校验
- 不能通过加密后得到的hash值反推出原数据内容
- 只要使用的hash算法不变,不管内容多大,得到的hash值长度不变
- 只能对二进制数据进行加密
4.1.2 使用方法
import hashlib
# 要加密的数据
password = 'ah666'
# 生成一个加密对象
m = hashlib.md5()
# 对数据进行加密
m.update(password.encode('utf-8')) # 只能对二进制数据加密
# 打印加密后的内容(hash值)
print(m.hexdigest()) # 输出结果:a53ada987b3f83d94f48029b751ad478
4.1.3 扩展:增强加密难度(盐值)
所有加密都是可以破解的,没有绝对安全,我们只能通过增强加密的难度来使破解变得困难
- 我们在加密时可以给加密内容拼接一个随机字符串,以此来增加加密难度,这个随机字符串我们称为
盐值
案例:
import hashlib
# 要加密的数据
password = 'ah666'
# 要拼接的字符串(盐值)
salt = '阿豪太帅了'
# 拼接后的内容
pwd = password+salt
# 生成一个加密对象
m = hashlib.md5()
# 对数据进行加密
m.update(pwd.encode('utf-8'))
# 打印加密后的内容(hash值)
print(m.hexdigest()) # 输出结果:d8f0cb197a68f98ad06cfc67953541d9