generateScriptFile.py脚本使用过程中遇到的问题及解决
generateScriptFile.py脚本
#!/usr/bin/env python # -*- coding: utf-8 -*- """ use case: python ./generateScriptFile.py """ import MySQLdb import sys import os from lxml import etree #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") except Exception as e: print e.message print "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) if os.path.exists(DIR): os.system("RD /S /Q " + DIR) os.system("mkdir "+DIR) for item in content: file_name=item[0] if len(file_name)==0: print item continue directory=item[0].split(".")[0] if len(directory)==0: print item[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() except Exception as e: print file_name print e.message print "Failed, please retry..." break print "See scripts data file in '"+DIR+"'" print "Done"
装Python的依赖库
安装MySQLdb
http://www.codegood.com/download/11/
下载: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 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import MySQLdb >>>
安装lxml
安装lxml之前,先安装pip,然后借助pip来安装lxml
下载pip:https://pypi.python.org/pypi/pip#downloads%20%EF%BC%9A
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 文件夹名:强制删除文件夹及文件夹下的所有文件,并且不给提示
如果要删除文件,则必须给出文件的后缀名。