【Python】iiacm_filemaker ——简易的.cpp文件创建即初始化脚本,ACMer专用

代码已全部重写,上次写的真是不忍直视……

 

今天刚刚接触Python,本着学以致用的原则,就写了一个按照要求自动生成.cpp文件并初始化头文件的脚本。

确定你的linux中安装了Python,将下面的代码拷贝进一个文件[filemaker],提权(chmod +x filemaker)

功能:

1、filemaker [文件名],即生成 文件名.cpp

2、filemaker -e [A-Z] 即生成从A到你输入的字母的所有字母.cpp

3、filemaker -n [1-26] 即生成从A开始的你输入个数的文件,大写字母递增

 

可以将该脚本所在的目录设置环境变量,以后就可以直接使用了

vim ~/.profile

在最后加上

export PATH="目录:$PATH"

保存退出

source .profile

即可

代码如下:

注:第七行的 headfile 是你要初始化的头文件所在的目录

 

 1 #!/usr/bin/python
 2 
 3 import sys
 4 import getopt
 5 
 6 content = []
 7 headfile = "/home/kevince/Documents/acm/head/acmhead.h" #the directory of the headfile
 8 
 9 #load file head.h and save it with a list
10 def loadcontent():
11     f = open(headfile)
12     lines = f.readlines()
13     for line in lines:
14         content.append(line)
15 
16 def Write(filename):
17     f = open(filename, "w")
18     for index, val in enumerate(content):
19         f.write(val)
20     f.close()
21 
22 def End(al):
23     num = ord(al) - ord('A') + 1
24     if num < 1 or num > 26:
25         print 'A-Z, please'
26         return
27     for i in range(0, num):
28         name = chr(ord('A') + i) + '.cpp'
29         Write(name)
30     return
31 
32 def Num(num):
33     num = int(num)
34     if num < 1 or num > 26:
35         print '1-26, please'
36         return
37     for i in range(0, num):
38         name = chr(ord('A') + i) + '.cpp'
39         Write(name)
40     return
41         
42 
43 def Usage():
44     print "\n"
45     print "iiacm-filemaker [fliename]\n"
46     print "or\n"
47     print "iiacm-filemaker -n | -e\n"
48     print "   -n  number of files\n"
49     print "   -e  endplace of files\n"
50     return
51 
52 def Make(args):
53     Write(args[0]+'.cpp')
54     return
55 
56 #main function
57 def main():
58     try:
59         opts, args = getopt.getopt(sys.argv[1:], 'e:n:', ['--end', '--num'])
60     except getopt.GetoptError:
61         Usage()
62         sys.exit()    
63     loadcontent()  #loadcontent
64     for o, a in opts:
65         if o in ('-e', '--help'):
66             End(a)
67             sys.exit()
68         if o in ('-n', '--num'):
69             Num(a)
70             sys.exit()
71     if len(args) == 0:
72           Usage()
73     else:
74         Make(args)
75     
76 
77 
78 if __name__ == '__main__':
79     main()

 

 

posted @ 2014-08-23 14:56  Prime-Kv  阅读(681)  评论(0编辑  收藏  举报