前言
有次项目上需要获取所有FreeSWITCH注册分机的分机号和密码,就用python写了个小脚本来获取。
可以先把freeswitch/conf/directory/default/
目录下的所有xml文件拷到一个临时空文件夹,避免操作失误影响生产业务。
将编辑好的python脚本放到同一目录下执行即可。
执行完成后会生成一个名为password1.txt
文件,其中包含了分机号与密码。
当时写的比较粗糙,只是能用,有待改善。
python脚本
# 此脚本用于解析当前文件夹分机号的xml文件,并提取出用户名和密码 # 需要python3 # 需要pip安装lxml # version: 1.1 import os from lxml import etree # import sys def getFilelist(): filenames = os.listdir() return filenames def parseXML(filename): '''解析xml文件,并返回字符串''' with open(filename,'r',encoding="utf-8") as f: content = f.read() xmlc = etree.XML(content) user = xmlc.xpath('//user/@id')[0] passwd = xmlc.xpath('//params/param/@value')[0] user_pwd = user + "," + passwd return user_pwd def savetest(alist): '''保存''' with open("password1.txt","a",encoding="utf-8") as f_obj: f_obj.write(alist) f_obj.write('\n') f_obj.close() if __name__ == "__main__": filenames = getFilelist() for filename in filenames: # usernum = int(filename.split(".")[0]) try: if filename.split(".")[1] != "xml": print(filename) else: user_pwd = parseXML(filename) userNum = int(user_pwd.split(",")[0]) savetest(user_pwd) # if userNum >= 1400 and userNum <= 2000: except: pass