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程序设计有所帮助。