【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 是你要初始化的头文件所在的目录
#!/usr/bin/python import sys
import getopt content = []
headfile = "/home/kevince/Documents/acm/head/acmhead.h" #the directory of the headfile #load file head.h and save it with a list
def loadcontent():
f = open(headfile)
lines = f.readlines()
for line in lines:
content.append(line) def Write(filename):
f = open(filename, "w")
for index, val in enumerate(content):
f.write(val)
f.close() def End(al):
num = ord(al) - ord('A') + 1
if num < 1 or num > 26:
print 'A-Z, please'
return
for i in range(0, num):
name = chr(ord('A') + i) + '.cpp'
Write(name)
return def Num(num):
num = int(num)
if num < 1 or num > 26:
print '1-26, please'
return
for i in range(0, num):
name = chr(ord('A') + i) + '.cpp'
Write(name)
return def Usage():
print "\n"
print "iiacm-filemaker [fliename]\n"
print "or\n"
print "iiacm-filemaker -n | -e\n"
print " -n number of files\n"
print " -e endplace of files\n"
return def Make(args):
Write(args[0]+'.cpp')
return #main function
def main():
try:
opts, args = getopt.getopt(sys.argv[1:], 'e:n:', ['--end', '--num'])
except getopt.GetoptError:
Usage()
sys.exit()
loadcontent() #loadcontent
for o, a in opts:
if o in ('-e', '--help'):
End(a)
sys.exit()
if o in ('-n', '--num'):
Num(a)
sys.exit()
if len(args) == 0:
Usage()
else:
Make(args) if __name__ == '__main__':
main()
【Python】iiacm_filemaker ——简易的.cpp文件创建即初始化脚本,ACMer专用的更多相关文章
- python搭建简易服务器实例参考
有关python搭建简易服务器的方法. 需求分析: 省油宝用户数 已经破了6000,原有的静态报表 已经变得臃肿不堪, 每次打开都要缓上半天,甚至浏览器直接挂掉 采用python搭建一个最最简易的 w ...
- MFC套接字连接不成功-记得在app的cpp文件里面初始化套接字
MFC套接字连接不成功-记得在app的cpp文件里面初始化套接字 stdafx.h文件中添加:#include "afxsock.h" BOOL CMFC_TCP_Client_c ...
- Python编写简易木马程序(转载乌云)
Python编写简易木马程序 light · 2015/01/26 10:07 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能 ...
- ubuntu系统安装初始化脚本
ubuntu系统安装初始化脚本 经常安装卸载ubuntu,每次系统安装完成后要安装好多软件,一个个命令输很麻烦浪费时间,一个sh文件全搞定! 1. flashplayer下载:点击这里 2. Auda ...
- 分析MariaDB初始化脚本mysql_install_db
在初始化MySQL的过程中经常会碰到各种问题,如 FATAL ERROR: Could not find ./bin/my_print_defaults ERROR: Can't create/wri ...
- jeecg安装——mysql数据库创建+手动执行初始化脚本
国产的开源项目官方文档写得那么详细,已经是很厚道了,可惜俺这种菜鸟还是会碰到各种"小"问题,做个笔记先! 1.新建数据库: CREATE DATABASE jeecg DEFAUL ...
- centos7 系统初始化脚本
现在自己的本地虚拟机系统,直接安装的是centos7.2 mini版,安装完成发现好多东西都没有安装,所以写了一个简单的系统初始化脚本,让自己可以省一些力气,哈哈 人懒主要是. 下面贴出写的脚本,脚本 ...
- 做了一个简易的git 代码自动部署脚本
做了一个简易的git 代码自动部署脚本 http://my.oschina.net/caomenglong/blog/472665 发表于2个月前(2015-06-30 21:08) 阅读(200 ...
- Openwrt 初始化脚本
Openwrt 使用自己的初始化脚本系统,所有的初始化脚本位于 /etc/init.d 目录下. 任何一个初始化脚本必须包含基本的 start() 和 stop() 函数.当系统启动或用户拉起对应的进 ...
随机推荐
- 括号配对问题--nyoj-2(栈)
括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=10 ...
- 2^x mod n = 1(hd1395)
2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- MySQL与unix时间问题
1.select unix_timestamp() -->可以返回以秒记的unix时间. 2.select from_unixtime('1455804595','%Y年%m月%d号'); -- ...
- js对象中什么是可枚举性(enumerable)?
说到枚举,可能很多人都会想到枚举类型,但在javascript对象中有一个属性为可枚举性,他是什么呢? 概念 可枚举性(enumerable)用来控制所描述的属性,是否将被包括在for...in循环之 ...
- MFC 遍历FTP服务器目录相关
CInternetSession* pSession; pSession = new CInternetSession; //构造新的连接 CFtpConnection* pFtpCon; pFtp ...
- Intuit Quicken Home & Business 2016(Manage your business and personal finances)
Quicken Home & Business 2016 - Manage your business and personal finances all in one place. Cate ...
- adb 异常报错----adb server is out of date. killing... ADB server didn't ACK * failed to start daemon *
在Eclipse进行android开发的时候,由于要启动adb,但有时候其他的程序启动会占用adb程序的端口,这时候在对android程序进行调试的时候就会出现报错: 究其原因就是因为其他程序占用了a ...
- (十)boost库之多线程
(十)boost库之多线程 1.创建线程 使用boost库可以方便的创建一个线程,并提供最多支持9个参数的线程函数,相对于void*来说,方便了很多,创建线程主要提供了一下3种方式: 线程库头文件:# ...
- 可执行文件(ELF)格式的理解
摘自http://www.cnblogs.com/xmphoenix/archive/2011/10/23/2221879.html 可执行文件(ELF)格式的理解 ELF(Executable an ...
- eclipse搭建Log4J日志环境
在hibernate使用的日志标准都为slf,slf可以看作为它的接口,因此需要找到它的实例,为我们做日志.我们选择使用log4j为实例. 1. 为防止冲突,先将slf4j-nop的jar包(它也是s ...