Python使用CMD模塊更優(yōu)雅的運(yùn)行腳本
本文實(shí)例講述了Python使用CMD模塊更優(yōu)雅的運(yùn)行腳本的方法。分享給大家供大家參考。具體分析如下:
平時(shí)由于經(jīng)常給測試人員調(diào)試一些東西,雖然寫了一些腳本,感覺還是不方便。
python的cmd模塊提供的更優(yōu)雅的方式,很喜歡。
剛寫了一些平時(shí)常用的測試代碼:
# -*- coding:utf-8 -*-
import os, sys
from datetime import datetime
import cmd
import warnings
from django.conf import settings
def not_exit(func):
def _func(*args, **kwargs):
try:
res = func(*args, **kwargs)
return res
except:
print "there is a wrong in %s, please input 'help %s' to get help" % (func.__name__, func.__name__[3:])
return None
return _func
class NBScript(cmd.Cmd):
def __init__(self):
cmd.Cmd.__init__(self)
#設(shè)置命令提示符
self.prompt = '> '
#配置django環(huán)境
pathname = os.path.dirname(sys.argv[0])
sys.path.append(os.path.abspath(pathname))
sys.path.append(os.path.normpath(os.path.join(os.path.abspath(pathname), '../')))
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
#清用戶cache
def help_clear_cache(self):
print "Usage:clear_cache [sns_id]"
print "-- clear the user's cache"
@not_exit
def do_clear_cache(self, sns_id):
from scripts.update_cache import clear_member_all_cache
clear_member_all_cache(sns_id)
#用戶升級(jí)
def help_user_level_up(self):
print "Usage:user_level_up [sns_id] [level]"
print "-- level up the user to the level"
@not_exit
def do_user_level_up(self, parms):
from apps.members.cache import get_member_by_sns_id, get_or_create_almanac_info
from apps.members.constants import EXP_LEVEL
sns_id, level = parms.split()
sns_id = int(sns_id)
level = int(level)
member = get_member_by_sns_id(sns_id)
al_info = get_or_create_almanac_info(member.id)
al_info.exp = EXP_LEVEL[level-1] + 1
al_info.save()
#增加用戶珍珠
def help_add_pearls(self):
print "Usage:add_pearls [sns_id] [pearls]"
print "-- add some pearls to the user"
@not_exit
def do_add_pearls(self, parms):
from platforms.account.helper import add_account_pearls
sns_id, pearls = parms.split()
sns_id = int(sns_id)
pearls = int(pearls)
add_account_pearls('', '', sns_id, pearls, type='Test', money=0)
#分魚
def help_add_fishes(self):
print "Usage:add_fishes [sns_id] [fish1 fish2 ...]"
print "-- add some fishes to the user"
@not_exit
def do_add_fishes(self, parms):
from apps.members.cache import get_member_by_sns_id
from apps.members.helper import new_a_member_fish
from apps.products.cache import get_fish
array = parms.split()
sns_id = int(array[0])
fish_ids = [int(i) for i in array[1:]]
member = get_member_by_sns_id(sns_id)
for fish_id in fish_ids:
fish = get_fish(fish_id)
new_a_member_fish(member, fish.id, update_almanac=True)
#分貝殼
def help_add_shells(self):
print "Usage:add_shells [sns_id] [shells]"
print "-- add some shells to the user"
@not_exit
def do_add_shells(self, parms):
from apps.members.cache import get_member_by_sns_id
sns_id, num = parms.split()
sns_id = int(sns_id)
num = int(num)
member = get_member_by_sns_id(sns_id)
member.shells += num
member.save()
#分魚食
def help_add_fish_food(self):
print "Usage:add_fish_food [sns_id] [food_num]"
print "-- add some food to the user"
@not_exit
def do_add_fish_food(self, parms):
from apps.members.cache import get_member_by_sns_id
sns_id, num = parms.split()
sns_id = int(sns_id)
num = int(num)
member = get_member_by_sns_id(sns_id)
member.fish_food += num
member.save()
#分魚缸
def help_add_fish_tanks(self):
print "Usage:add_fish_food [sns_id] [tank1,tank2 ...]"
print "-- add some tanks to the user"
@not_exit
def do_add_fish_tanks(self, parms):
from apps.members.cache import get_member_by_sns_id
from apps.members.helper import new_a_member_tank
from apps.products.cache import get_fish_tank
array = parms.split()
sns_id = int(array[0])
tank_ids = [int(i) for i in array[1:]]
member = get_member_by_sns_id(sns_id)
for tank_id in tank_ids:
tank = get_fish_tank(tank_id)
new_a_member_tank(member, tank.id)
#分道具
def help_add_items(self):
print "Usage:add_items [sns_id] [itme1,item2 ...]"
print "-- add some itmes to the user"
@not_exit
def do_add_items(self, parms):
from apps.members.cache import get_member_by_sns_id
from apps.members.helper import new_a_member_item
from apps.products.cache import get_item
array = parms.split()
sns_id = int(array[0])
item_ids = [int(i) for i in array[1:]]
member = get_member_by_sns_id(sns_id)
for item_id in item_ids:
item = get_item(item_id)
new_a_member_item(member, item.id)
#刷任務(wù)
def help_refresh_task(self):
print "Usage:refresh_task [sns_id]"
print "-- refresh user's task"
@not_exit
def do_refresh_task(self, sns_id):
from apps.members.cache import get_member_by_sns_id
sns_id = int(sns_id)
member = get_member_by_sns_id(sns_id=sns_id)
member.task_start_time = None
member.save()
#調(diào)合成等級(jí)
def help_synthesis_level_up(self):
print "Usage:synthesis_level_up [sns_id] [level]"
print "-- level up user's synthesis level"
@not_exit
def do_synthesis_level_up(self, parms):
from apps.members.cache import get_member_by_sns_id
from apps.synthesis.cache import get_or_create_synth_info
sns_id, lev = parms.split()
sns_id = int(sns_id)
lev = int(lev)
member = get_member_by_sns_id(sns_id=sns_id)
exp = int(sum([i**1.5*20 for i in range(1,lev+1)]))
member = get_member_by_sns_id(sns_id)
synth = get_or_create_synth_info(member.id)
synth.synth_exp = exp
synth.save()
def help_quit(self):
print "Usage:quit"
def do_quit(self, line):
exit()
do_q = do_quit
if __name__ == "__main__":
nb_script = NBScript()
nb_script.cmdloop()
這里權(quán)當(dāng)cmd模塊的簡單學(xué)習(xí)了。
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python如何實(shí)現(xiàn)數(shù)組元素兩兩相加
這篇文章主要介紹了python如何實(shí)現(xiàn)數(shù)組元素兩兩相加,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
Python數(shù)據(jù)類型最全知識(shí)總結(jié)
學(xué)習(xí)一門語言,往往都是從Hello World開始. 但是筆者認(rèn)為,在一個(gè)黑框框中輸出一個(gè)“你好,世界”并沒有什么了不起,要看透事物的本質(zhì),熟悉一門語言,就要了解其底層,就是我們常常說的基礎(chǔ),本篇從python中的數(shù)據(jù)類型開始,需要的朋友可以參考下2021-05-05
Python基于jieba, wordcloud庫生成中文詞云
這篇文章主要介紹了Python基于jieba, wordcloud庫生成中文詞云,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
Python之list對(duì)應(yīng)元素求和的方法
今天小編就為大家分享一篇Python之list對(duì)應(yīng)元素求和的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06
一行代碼解決動(dòng)態(tài)執(zhí)行Python函數(shù)方法實(shí)例
這篇文章主要為大家介紹了如何用一行代碼解決動(dòng)態(tài)執(zhí)行Python函數(shù)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
Python中報(bào)錯(cuò) “TypeError: ‘list‘ object is&n
這篇文章主要介紹了Python中報(bào)錯(cuò) “TypeError: ‘list‘ object is not callable”問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09

