Python使用CMD模块更优雅的运行脚本
本文实例讲述了Python使用CMD模块更优雅的运行脚本的方法。分享给大家供大家参考。具体分析如下:
平时由于经常给测试人员调试一些东西,虽然写了一些脚本,感觉还是不方便。
python的cmd模块提供的更优雅的方式,很喜欢。
刚写了一些平时常用的测试代码:
#-*-coding:utf-8-*-
importos,sys
fromdatetimeimportdatetime
importcmd
importwarnings
fromdjango.confimportsettings
defnot_exit(func):
def_func(*args,**kwargs):
try:
res=func(*args,**kwargs)
returnres
except:
print"thereisawrongin%s,pleaseinput'help%s'togethelp"%(func.__name__,func.__name__[3:])
returnNone
return_func
classNBScript(cmd.Cmd):
def__init__(self):
cmd.Cmd.__init__(self)
#设置命令提示符
self.prompt='>'
#配置django环境
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
defhelp_clear_cache(self):
print"Usage:clear_cache[sns_id]"
print"--cleartheuser'scache"
@not_exit
defdo_clear_cache(self,sns_id):
fromscripts.update_cacheimportclear_member_all_cache
clear_member_all_cache(sns_id)
#用户升级
defhelp_user_level_up(self):
print"Usage:user_level_up[sns_id][level]"
print"--leveluptheusertothelevel"
@not_exit
defdo_user_level_up(self,parms):
fromapps.members.cacheimportget_member_by_sns_id,get_or_create_almanac_info
fromapps.members.constantsimportEXP_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()
#增加用户珍珠
defhelp_add_pearls(self):
print"Usage:add_pearls[sns_id][pearls]"
print"--addsomepearlstotheuser"
@not_exit
defdo_add_pearls(self,parms):
fromplatforms.account.helperimportadd_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)
#分鱼
defhelp_add_fishes(self):
print"Usage:add_fishes[sns_id][fish1fish2...]"
print"--addsomefishestotheuser"
@not_exit
defdo_add_fishes(self,parms):
fromapps.members.cacheimportget_member_by_sns_id
fromapps.members.helperimportnew_a_member_fish
fromapps.products.cacheimportget_fish
array=parms.split()
sns_id=int(array[0])
fish_ids=[int(i)foriinarray[1:]]
member=get_member_by_sns_id(sns_id)
forfish_idinfish_ids:
fish=get_fish(fish_id)
new_a_member_fish(member,fish.id,update_almanac=True)
#分贝壳
defhelp_add_shells(self):
print"Usage:add_shells[sns_id][shells]"
print"--addsomeshellstotheuser"
@not_exit
defdo_add_shells(self,parms):
fromapps.members.cacheimportget_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()
#分鱼食
defhelp_add_fish_food(self):
print"Usage:add_fish_food[sns_id][food_num]"
print"--addsomefoodtotheuser"
@not_exit
defdo_add_fish_food(self,parms):
fromapps.members.cacheimportget_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()
#分鱼缸
defhelp_add_fish_tanks(self):
print"Usage:add_fish_food[sns_id][tank1,tank2...]"
print"--addsometankstotheuser"
@not_exit
defdo_add_fish_tanks(self,parms):
fromapps.members.cacheimportget_member_by_sns_id
fromapps.members.helperimportnew_a_member_tank
fromapps.products.cacheimportget_fish_tank
array=parms.split()
sns_id=int(array[0])
tank_ids=[int(i)foriinarray[1:]]
member=get_member_by_sns_id(sns_id)
fortank_idintank_ids:
tank=get_fish_tank(tank_id)
new_a_member_tank(member,tank.id)
#分道具
defhelp_add_items(self):
print"Usage:add_items[sns_id][itme1,item2...]"
print"--addsomeitmestotheuser"
@not_exit
defdo_add_items(self,parms):
fromapps.members.cacheimportget_member_by_sns_id
fromapps.members.helperimportnew_a_member_item
fromapps.products.cacheimportget_item
array=parms.split()
sns_id=int(array[0])
item_ids=[int(i)foriinarray[1:]]
member=get_member_by_sns_id(sns_id)
foritem_idinitem_ids:
item=get_item(item_id)
new_a_member_item(member,item.id)
#刷任务
defhelp_refresh_task(self):
print"Usage:refresh_task[sns_id]"
print"--refreshuser'stask"
@not_exit
defdo_refresh_task(self,sns_id):
fromapps.members.cacheimportget_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()
#调合成等级
defhelp_synthesis_level_up(self):
print"Usage:synthesis_level_up[sns_id][level]"
print"--levelupuser'ssynthesislevel"
@not_exit
defdo_synthesis_level_up(self,parms):
fromapps.members.cacheimportget_member_by_sns_id
fromapps.synthesis.cacheimportget_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*20foriinrange(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()
defhelp_quit(self):
print"Usage:quit"
defdo_quit(self,line):
exit()
do_q=do_quit
if__name__=="__main__":
nb_script=NBScript()
nb_script.cmdloop()
这里权当cmd模块的简单学习了。
希望本文所述对大家的Python程序设计有所帮助。