写一个XML文件
import xml.etree.ElementTree as ET
namelist=ET.ElementTree("namelist")
将namelist生成一个根节点
name=ET.SubElement(namelist,"name",attrib={"strinf":"yes",128);font-size:24px;">"name":"alex"})
赋予namelist属性
age=ET.SubElement(name,128);font-size:24px;">"age")
在根下面建立子节点
age.txt=27
赋值
role=ET.SubElement(name,128);font-size:24px;">"role")
根下建立子节点
role.txt="teacher"
et=ET.ElementTree(namelist)
生成文件对象
et.write("test.xml",153);font-size:24px;">encoding="utf-8",153);font-size:24px;">xml_declaration=True)
写进一个xml文件
import configparser
config=configparser.ConfigParser()#生成对象
config["DEFAULT"]={'Interval':'45',
'Compression':'yes',128);font-size:24px;">'CompressionLevel':'9'}
赋予属性,生成字典
config['bitbucket.org']={}可以单独生成
config['bitbucket.org']['User']='alex'#赋值
config['topsecret.server.com']={}
topsecret=config['topsecret.server.com']
topsecret['Host Port']='50022'
topsecret['ForwardXll']='no''enabled']='YES''DEFAULT']['yes'
f=open("config.ini",128);font-size:24px;">'w')
config.write(f)
f.close()
import configparser
config=configparser.ConfigParser()
config.read("config1.ini")
print(config.sections())#找到文件的sections
config_name=config.sections()[1]
#找到对应的值
print(config[config_name]["host port"])
sec=config.remove_option(config_name,128);font-size:24px;">'forwardxll')
删除forwardx11这一行
config.set(config_name,128);font-size:24px;">'host port',128);font-size:24px;">'3000')
将端口号改为3000
config.write("config2.ini",128);font-size:24px;">"w"))
import hashlib
m= hashlib.md5()
m.update(b"alex")
print(m.hexdigest())
m.update(b"li")
print(m.hexdigest())
读一行的md5没有比读整篇的md5省内存
m2=hashlib.md5()
m2.update(b"alexli")
print(m2.hexdigest())
m2=hashlib.sha256()
m2.update(print(m2.hexdigest())
sha256的比md5的安全
加盐算法,更安全
import hmac
hamc_name=hmac.new(b"salt",0);font-size:24px;">b"hello")
print(hamc_name.hexdigest())