python脚本之linux传参

#!/usr/bin/python
# -*- coding: utf-8 -*-

import os,sys
from MySQLdb import *
from optparse import OptionParser

sys.path.append('../')

HOST = 'host'
USER = 'user'
PAWD = 'pass'
DB = 'db'


#更新数据库函数
def updateAdventureCnt():
    conn = Connect(host=HOST, user=USER, passwd=PAWD, port=0, charset="utf8", init_command="SET NAMES utf8")
    conn.select_db(DB)
    cur = conn.cursor()
    print("database to connect successfully.")
    sql = '''
    select char_oid,expedition_point,cur_adventure_cnt FROM char_data
    '''
    try:
        cur.execute(sql)  # 执行sql语句
        conn.commit()  # 提交到数据库执行
        rows = cur.fetchall()
        for row in rows:
            char_oid = row[0]
            expediton_point = row[1]
            cur_adventure_cnt = row[2] + expediton_point*3
            UpdateSql = '''
            UPDATE char_data SET cur_adventure_cnt=%d where char_oid = %d
            '''% (cur_adventure_cnt,char_oid)
            if expediton_point > 0:
                cur.execute(UpdateSql)
                conn.commit()
        print('update ok')
    except:
        print('update error')
        conn.rollback()  # 发生错误后回滚
    cur.close()  # 关闭数据库
    conn.close()
#parser设定关键字传参
def CreateParser():
    """
    create command line parser
    """
	#规定用法
    usage = "--h hostname -u usename -p passwd DBNAME"
	#构造实例对象
    parser = OptionParser(add_help_option=True, description="",
                          usage=usage)
    #短名--h,长名--hostname,对应dbhost
    parser.add_option('--h', '--hostname', dest='dbhost',)
    #短名-u,长名-username,对应dbuser
    parser.add_option('-u', '--username', dest='dbuser')
    #短名-p,长名-password,对应password
    parser.add_option('-p', '--password', dest='password')

    return parser


if __name__ == "__main__":
	#调用实例
    parser = CreateParser()
    #获取传参,options为关键字传参,args其他参数
    (options, args) = parser.parse_args()
	#若有此关键字传参,则赋值
    if options.dbhost:
        HOST = options.dbhost
    if options.dbuser:
        USER = options.dbuser
    if None != options.password:
        PAWD = options.password
	#若有此传参,则赋值
    if len(args) > 0:
        DB = args[0]
    #调用数据库函数
    updateAdventureCnt()

调用此脚本方法

在linux或者windows中:
python 文件位置/文件名 --h host -u user -p pass db

或者采用shell脚本调用

#!/bin/bash
python 文件位置/文件名 --h host -u user -p pass db
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值