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")
posted @ 2016-04-04 21:14  许忠慧  阅读(346)  评论(0编辑  收藏  举报