【Python】简易的.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 
 5 content = []
 6 headfile = "/home/kevince/Documents/acm/head/acmhead.h" #the directory of the headfile
 7 
 8 #load file head.h and save it with a list
 9 def loadcontent(filename):
10     f = open(filename)
11     lines = f.readlines()
12     for line in lines:
13         content.append(line)
14 
15 #main function
16 def main():
17     loadcontent(headfile)  #loadcontent
18     arglen = len(sys.argv)
19     flag = 1
20     if arglen == 2:          #judge the lenth of arg
21         f = open(sys.argv[1] + .cpp, "w")
22         for index, val in enumerate(content):
23             f.write(val)
24         f.close()
25         sys.exit()
26     elif arglen == 3:
27         if sys.argv[1] == -n:
28             e = int(sys.argv[2])
29             e = e + ord(A)
30             if e > ord(Z) or e < ord(A):
31                 print "1-26 please!\n"
32                 sys.exit()
33         elif sys.argv[1] == -e:
34               e = ord(sys.argv[2])
35               if e > ord(Z) or e < ord(A):
36                 print "A-Z please!\n"
37                 sys.exit()
38             e = e + 1
39         else:
40             flag = 0;
41     else:
42         flag = 0;
43     if flag == 0:
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         sys.exit()
51     s = ord(A)
52     for t in range(s, e):
53         f = open(chr(t) + .cpp, "w")
54         for index, val in enumerate(content):
55             f.write(val)
56         f.close        
57 
58 
59 if __name__ == __main__:
60     main()

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。