一个python小脚本--自我解析

需求:希望生成多个xml文件 ;
          生成一个bat文件,多行显示 内容为start LoadTest.exe -data xx.xml,xx是roomid的递增数字;
前提: 有个模板xml文件,需要修改其中两个项目,roomid,pwd
思路:1、批量生成xml文件,roomid是递增数字,pwd不变 2、生成bat文件 3、 使用ElementTree,先将文件读入,解析成树,之后,根据路径,可以定位到树的每个节点,再对节点进行修改,最后直接将其输出
import os #os模板有关 处理文件和目录
import re #正则

import shutil #文件处理的标准库

#https://docs.python.org/2/library/xml.etree.elementtree.html 解析xml文件的标准库

from xml.etree.ElementTree import ElementTree,Element 
def update(filepath,nodepath,newtext): #创建函数(指定文件名、文件内容待修改路径、修改后的内容)


    nodetree = ElementTree() 
    nodetree.parse(filepath)#将xml文件解析树
    root  = nodetree.getroot()#获取根节点
    nodelist = root.findall(nodepath)#获取nodepath的子节点即修改路径
#遍历树找到需要修改的路径,替换修改后的内容,重新写到文件里
    for node in nodelist:
        node.text = newtext
    nodetree.write(filepath)
f = raw_input("Input your first roomid number : ") #起始数字
end = raw_input("Input your last roomid number : ") #最后数字,起始和最终数字是1为单位递增的
password = raw_input("Input your last roomid password : ") 
m = int(f)
n = int(end)
sourceFile = "81709.xml"




#生产bat文件:创建txt转化成bat,内容循环添加
txt = open('E:/python脚本/批量登录会议室/r/test.txt','w')
i = m    
while i < n+1: 
print >>txt,"start LoadTest.exe -data ""\""+str(i)+".xml\""
i+=1
txt.close()
os.rename ('E:/python脚本/批量登录会议室/r/test.txt','E:/python脚本/批量登录会议室/r/LoadTest.bat')
print "update loadtest completed"




for name in range (m,n+1): #迭代包含n,生产所需数量的xml
    filename = str(name) + ".xml"
    shutil.copyfile(sourceFile,filename)  #拷贝源文件生产新文件
    update(filename,"room/roomid",str(name)) #利用函数修改新文件内容
    update(filename,"room/avuser/nickuser/autousercount",password) #利用函数修改新文件内容

    m+=1

print "copy xml success"

你可能感兴趣的:(python)