python常用模块之os、sys、json、hashlib模块的使用(15)

前言

本篇文章主要介绍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数据的作用

  1. json数据不但可以在不同数据类型间进行转换(字典、列表、字符串、整型、浮点型、布尔、None),还能跨语言交互,充当不同语言间的翻译官;如:java、C、C++
  2. json数据体积小,性能更佳

3.2 导入模块

语法格式:import json

3.3 将python中的数据转换成json数据

  1. 直接转换

语法格式: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中本质上还是字符串

  1. 转换后,可以显示中文

语法格式: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

  1. 将python数据转换成json数据后写入文件

语法格式:
方法1:json.dump(python数据,文件对象)
方法2:文件对象.write(json.dumps(python数据))

  1. 读取文件中的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 作用

  1. 只要传入的内容不变,得到的hash值必然相同;内容稍微改变,hash值就会改变,这样才能用于文件完整性的校验
  2. 不能通过加密后得到的hash值反推出原数据内容
  3. 只要使用的hash算法不变,不管内容多大,得到的hash值长度不变
  4. 只能对二进制数据进行加密

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盲敲代码的阿豪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值