#configparser模块:配置解析模块
import configparser
config = configparser.ConfigParser() #创建一个配置解析对象
config["DEFAULT"] = {
"name":"sjy",
"age":"25",
} #添加配置内容,类似创建字典,再添加到文件中去
with open("confile.ini","w") as f: #文件名的扩展名任意
config.write(f) #注意配置文件写入和单纯文件写入的不同,单纯文件写入是f.write()
#查
config.read("example.ini") #需要先导入需要操作的配置文件
print(config.sections()) #打印出配置文件中(除了默认的DEFAULT)其他的块名
print("bytebong.com" in config) #判断这个块名是否在这个配置文件中
print(config["bitbucket.org"]["user"]) #取到块中的具体内容,不区分大小写
for i in config["topsecret.server.com"]:
print(i) #不管遍历哪个块,默认的DEFAULT块都会被遍历出来
print(config.options("topsecret.server.com")) #遍历这个块,并将得到的内容放到列表中,注意默认块也会被遍历
print(config.items("topsecret.server.com")) #遍历这个块,并以键值对的方式放到字典中
print(config.get("topsecret.server.com","compressionlevel")) #获取块里的内容
#删,改,增
config.add_section("yuan") #添加块
config.set("yuan","k1","22") #添加块中的键值对
config.remove_section("bitbucket.org") #删除配置文件中的块
config.remove_option("topsecret.server.com","forwardx11") #删除块中的键值对
config.write(open("new_example.ini","w"))
#hashlib模块:用于加密操作,做hash算法,摘要算法
import hashlib
obj = hashlib.md5("53sb".encode("utf8")) #md5加密,括号里的参数自己设置放在需要加密信息前使得密文改变,防止撞库解密
obj.update("hello".encode("utf8")) #原生md5加密的密文对应关系固定,自己加点东西,使其与原生不一样
print(obj.hexdigest()) #得到一个密文,密文长度是固定的,不可逆的加密
obj.update("admin".encode("utf8")) #在上面做过加密后,再次调用,是在原先基础上再加密
print(obj.hexdigest()) #这里得到的密文是helloadmin的密文
hash = hashlib.sha256() #sha256加密,方法与md5类似
hash.update("hello".encode("utf8"))
print(hash.hexdigest())