#configparse 模块
#用于生成配置文件,以及相关操作
import configparser
config = configparser.ConfigParser()
config['default'] = {}
config['default']['配置一'] = 'a'
config['default']['配置二'] = 'b'
with open('configparser.ini','w',encoding='utf8') as f:
config.write(f)
![]()
#增删改查
import configparser
#写入
config = configparser.ConfigParser()
config['DEFAULT'] = {}
config['DEFAULT']['配置一'] = 'a'
config['DEFAULT']['配置二'] = 'b'
config['user'] = {}
a = config['user']
a['内容一'] = '123123'
with open('configparser.ini','w',encoding='utf8') as f:
config.write(f)
#读取
config1=configparser.ConfigParser()
config1.read('configparser.ini',encoding='utf8') #读取文件操作
print(config.sections()) #显示块名字,如 [参数] ,若果是[DEFAULT]默认不显示
print(config.items('user')) #遍历值
print(config.options('user')) #遍历键
#上行代码相当于
for i in config['user']: #遍历键值对
print(i) #多输出了[DEFAULT]的键(相当于[user]里加了[DEFAULT]的内容),
# DEFAULT有特殊意义,里面的键值对在其他块中的键值对遍历时也会遍历
#查找
print(config1['user']['内容一']) #获取内容
print(config.get('user','内容一')) #获取的另一种写法
print('abc' in config) #判断是否有内容
#增
config.add_section('新块') #新增块
config.set('新块','新键','321321321') #加值
#删,改
config.remove_option('DEFAULT','配置一') #删块下键值对
config.remove_section('新块') #删块
config['DEFAULT']['配置二'] = '66666' #修改值
#修改后写入
config.write(open('configparser_new.ini','w',encoding='utf8'))
#hashlib模块
#hash算法 (摘要算法),例如 MD5算法,他能将明文变密文,但是无法恢复成明文 (固定长度)
#加密算法指 明文变密文,同时密文还能解密成明文
import hashlib
obj=hashlib.md5() #规定使用md5算法
obj.update('hello'.encode('utf8')) #将hello 转为bytes 然后用MD5加密 ,得出的密文唯一且不能反解
#但是通过这种加密,全世界只要加密hello都能得到一样的密文,
#所以会被撞库破解(在一个很庞大的数据库中记录者明文一一对应密文的数据)
print(obj.hexdigest()) #进行md5算法 5d41402abc4b2a76b9719d911017c592
#为了防止撞库,在MD5算法中加入了自己独一无二的东西
obj1=hashlib.md5('unique'.encode('utf8')) #MD5算法中加入自己设定的 unique 参数,这样全世界只有你一个人知道加密完是什么样子
obj1.update('hello'.encode('utf8'))
print(obj1.hexdigest()) #91bfbc9209636a67e30f1de3f5044b9c
#连续两次对obj赋值,相当于把两个赋值内容连在一起加密
obj2=hashlib.md5()
obj2.update('123'.encode('utf8'))
obj2.update('456'.encode('utf8'))
print(obj2.hexdigest()) #e10adc3949ba59abbe56e057f20f883e
obj3=hashlib.md5()
obj3.update('123456'.encode('utf8'))
print(obj3.hexdigest()) #e10adc3949ba59abbe56e057f20f883e 与上面相同
#其他算法如 sha256、sha384、sha512(复杂度依次升高) 用法和上面完全相同,即只要把MD5替换成相应算法就行