今天天晴,周四,还有一日双休,最近空闲,宜分享。
最近,因需要提高软件灵活度,需要加载配置文件来解决此问题。灵机一动想到了用XML作为配置文件,试一波,配置灵活,能自检错误。现将利用python完成配置文件加载的,分享一波。
1、自定义的XML标签:
此结构见明知其意,为文件动态处理的机制,包括,原路径文件是否保存,移动位置,重命名等操作。
标签要求:一一对应,可按照自己的喜好定义标签,当然最好规范一点。
2、标签指定结束后,可利用浏览器检查样式是否正确。如不能正确显示,仔细检查一波哦。
3、利用python代码获取xml所在内容
首先你需要构建一个与标签对应的类,方便存储和读取,当然如果只用到一个标签对就能解决问题,就没有波必要了。
class fileCopy: def __init__(self,_savefile,_startingPosition,_targetLocation,_newFileName) -> None: self.savefile = _savefile self.startingPosition =_startingPosition self.targetLocation = _targetLocation self.newFileName = _newFileName pass def GetIsSavefile(self): return self.savefile def GetstartingPosition(self): return self.startingPosition def GettargetLocation(self): return self.targetLocation def GetnewFileName(self): return self.newFileName
其次:写一个读取xml的方法
def readXML(): try: domTree = parse("configuration.xml") rootNode = domTree.documentElement # 所有信息 customers = rootNode.getElementsByTagName("fileMove") list1=[] for customer in customers: if customer.hasAttribute("savefile"): savefile = customer.getAttribute("savefile") startingPosition =customer.getElementsByTagName("startingPosition")[0] targetLocation =customer.getElementsByTagName("targetLocation")[0] newName = customer.getElementsByTagName("newFileName")[0] file = fileCopy(savefile,startingPosition.childNodes[0].data,targetLocation.childNodes [0]. data,newName.childNodes[0].data) list1.append(file) return list1 except Exception as e: print("无法加载配置文件:configuration.xml") return []
总之,标签名和代码中要选择读取的名称要相同,否则加载失败,这就是上文提到的,标签名规范的重要性了,虽然我的也不那么规范。哈哈哈。
看完点赞哦,每天一个好习惯!