My Python Work 3
需求:
用户输入名称(小写字母)、ID和中文名称自动生成项目和指定文件
这个脚本的大致内容很简单,主要是对一些文件夹、文本、字符串等进行处理,需要注意的内容如下:
1.raw_input
之所以选择raw_input,不直接选择input去读取键盘输入是因为使用raw_input你的输入不管是什么都将会被默认为str类型,如果使用input,那么你只输入数字他是可以识别为int或float类型,如果要输入字符串,还需要加引号,不加引号会报错
2.中文处理
这对我来说是一个老大难题,所以编写脚本过程中我会尽量避免中文的使用,但是有时候确实需要使用到中文,.decode()和.encode()设置解码格式和编码格式,这样来控制dos和python的中文输入问题,具体的使用可以看源码
3.字符串处理
本脚本中使用的字符串处理如下:
bigName=names.capitalize()#首字母大写,其他字母小写
smallName=names.lower()#全部小写
4.部分dos命令
#使用/s/q可以在不谈出任何提示的情况下将非空文件夹删除
rd c:\\folder/s/q
#使用/e可以复制所有文件及文件夹包括空文件夹
xcopy e:\\MpsUpdate c:\\MpsUpdate/e
5.文本处理--修改指定行
阅读模式打开文本--逐行读取文本并写入list--使用list切片修改指定行的内容--编辑模式打开文本--将新的list写入文本--关闭文本
6.文本处理--指定行插入
基本步骤与修改指定行相同,只是写入list后使用了一个insert对指定行进行了插入操作
以下为源码
# -*- coding: utf-8 -*- import os import sys names=raw_input("what's your new project name ?") Id=raw_input("what's your new project ID ?") Cname=raw_input("what's your new project Cname?".decode('utf-8').encode('gbk')) bigName=names.capitalize() smallName=names.lower() if os .path.exists("C:\\MpsUpdate"): os.system("rd c:\\MpsUpdate/s/q") os.system("md c:\\MpsUpdate") os.system("xcopy e:\\MpsUpdate c:\\MpsUpdate/e") cmd="ren c:\\MpsUpdate\\mps\\app\Projects\\fbsg\\Controller\\" os.system(cmd+"FbsgBisController.php "+"FbsgBisController.txt") f=open('c:\\MpsUpdate\\mps\\app\Projects\\fbsg\\Controller\\FbsgBisController.txt','r+') flist=f.readlines() flist[8]='class '+bigName+'BisController extends ApiController\n' flist[14]=" public $project_name = '"+bigName+"';\n" f=open('c:\\MpsUpdate\\mps\\app\Projects\\fbsg\\Controller\\FbsgBisController.txt','w+') f.writelines(flist) f.close() os.system(cmd+"FbsgBisController.txt "+bigName+"BisController.php") os.system(cmd+"FbsgPlatChanelsController.php "+"FbsgPlatChanelsController.txt") f2=open('c:\\MpsUpdate\\mps\\app\Projects\\fbsg\\Controller\\FbsgPlatChanelsController.txt','r+') f2list=f2.readlines() f2list[4]='* '+bigName+'平台渠道管理\n' f2list[10]='class '+bigName+'PlatChanelsController extends PlatChanelApiController\n' f2list[18]=" public $_projectcode = '"+Id+"';\n" f2=open('c:\\MpsUpdate\\mps\\app\Projects\\fbsg\\Controller\\FbsgPlatChanelsController.txt','w+') f2.writelines(f2list) f2.close() os.system(cmd+"FbsgPlatChanelsController.txt "+bigName+"PlatChanelsController.php") cmd2="ren C:\\MpsUpdate\\mps\\app\Projects\\fbsg\View\\" os.system(cmd2+"FbsgBis "+bigName+"Bigs") os.system(cmd2+"FbsgPlatChanels "+bigName+"PlatChanels") cmd3="ren C:\\MpsUpdate\\mps\\app\\Projects\\" os.system(cmd3+"fbsg "+smallName) bi="C:\\MpsUpdate\\mps\\app\\Projects\\common\\Model\\" os.system("ren "+bi+"Bi.php "+"Bi.txt") f3=open((bi+"Bi.txt"),"r+") f3list=f3.readlines() f3list.insert(50," '"+Id+"'=>'"+smallName+"',\n") f3=open((bi+"Bi.txt"),"w+") f3.writelines(f3list) f3.close() os.system("ren "+bi+"Bi.txt "+"Bi.php") last="C:\\MpsUpdate\\mps\\app\\Model\\" os.system("ren "+last+"Ptproject.php "+"Ptproject.txt") f4=open((last+"Ptproject.txt"),"r+") f4list=f4.readlines() f4list.insert(561," '"+smallName+"'=>array(\n") f4list.insert(562," 'title'=>'"+Cname.decode('gbk').encode('utf-8')+"',\n") f4list.insert(563," 'funclist'=>array(\n") f4list.insert(564," 'platchanellist'=>array('label'=>'平台列表', 'uri'=>array('controller'=>'"+smallName+"_plat_chanels','action'=>'getplat', '"+Id+"') ),\n") f4list.insert(565," ),\n") f4list.insert(566," 'disabled'=>false,\n") f4list.insert(567," 'icon'=>'gamepad',\n") f4list.insert(568," 'useconfig'=>'bi'\n") f4list.insert(569," \n") f4list.insert(570," ), \n") f4=open((last+"Ptproject.txt"),"w+") f4.writelines(f4list) f4.close() os.system("ren "+last+"Ptproject.txt "+"Ptproject.php")
- 本文为博主学习笔记,未经博主允许不得转载
- 本文仅供交流学习,请勿用于非法途径
- 本文仅是个人意见,如有想法,欢迎交流