• 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"?>
    ");
            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:Python27Scripts;

    然后就可以使用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 文件夹名:强制删除文件夹及文件夹下的所有文件,并且不给提示

    如果要删除文件,则必须给出文件的后缀名。

  • 相关阅读:
    php system()和exec()差别
    linux目录中 /usr/local/bin 和 /usr/bin和/usr/local/etc
    mac rar命令相关
    php迭代器
    linux下的find文件查找命令与grep文件内容查找命令
    php 类中的静态属性
    mysql 语句执行顺序
    mysl
    MySQL中concat函数
    animation效果
  • 原文地址:https://www.cnblogs.com/fangpengchengbupter/p/7976987.html
Copyright © 2020-2023  润新知