generateScriptFile.py脚本
#!/usr/bin/env python#-*- coding: utf-8 -*-
"""use case:
python ./generateScriptFile.py"""
importMySQLdbimportsysimportosfrom lxml importetree#IP=sys.argv[1]
IP="10.0.20.252"DIR="ScriptsDir"
try:print "connect to database..."acheron_db=MySQLdb.connect(IP,"root","Free-Wi11","acheron_db")exceptException as e:printe.messageprint "Can't connect to"+IP
exit(1)print "Done..."
print "Ready to read data from database..."acheron_db_cursor=acheron_db.cursor()
sqlCMD="select Description,TestScript from Script where Class='System'"acheron_db_cursor.execute(sqlCMD)
content=acheron_db_cursor.fetchall()if len(content)==0:print "no data obtained"exit(1)ifos.path.exists(DIR):
os.system("RD /S /Q" +DIR)
os.system("mkdir"+DIR)for item incontent:
file_name=item[0]if len(file_name)==0:printitemcontinuedirectory=item[0].split(".")[0]if len(directory)==0:printitem[0]continue
if not os.path.exists(DIR+"\\"+directory):
os.system("mkdir"+DIR+"\\"+directory)try:
f=open(DIR+"\\"+directory+"\\"+file_name+".xml","w")
root=etree.fromstring(item[1])
f.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
f.write(etree.tostring(root))#f.write(etree.tostring(root,xml_declaration=True,encoding='UTF-8'))
f.close()exceptException as e:printfile_nameprinte.messageprint "Failed, please retry..."
break
print "See scripts data file in '"+DIR+"'"
print "Done"
装Python的依赖库
安装MySQLdb
下载:MySQL-python-1.2.3.win-amd64-py2.7.exe
点击安装
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64bit (AMD64)] on win32
Type"help", "copyright", "credits" or "license" formore information.>>> importMySQLdb>>>
安装lxml
安装lxml之前,先安装pip,然后借助pip来安装lxml
pip的安装步骤:
进入解压后的pip文件夹下,可以看到有setup.py
下载完成之后,解压到一个文件夹里,用cmd控制台进入解压目录,然后输入:python setup.py install
安装好后,在PATH中添加环境变量:C:\Python27\Scripts;
然后就可以使用pip命令了,使用pip list查看使用pip安装的依赖包:
安装完pip后,就可以使用pip来安装lxml依赖了:
使用pip install lxml,安装完成。
然后修改脚本
原先的脚本是能正常运行在linux环境中的,但是目前要移植到windows 64位环境中使用:
1.f=open(DIR+"/"+directory+"/"+file_name+".xml","w") 改为 f=open(DIR+"\\"+directory+"\\"+file_name+".xml","w")
2.linux下使用的命令,如删除命令要改为windows下的命令:os.system("RD /S /Q " + DIR)
Windows强制删除文件及文件夹命令
RD /S /Q 文件夹名 : 强制删除文件夹文件以及文件夹中的所有文件
DEL /F /A /Q 文件夹名:强制删除文件夹及文件夹下的所有文件,并且不给提示
如果要删除文件,则必须给出文件的后缀名。