【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() 函数.当系统启动或用户拉起对应的进 ...
随机推荐
- Nginx 模块开发(1)—— 一个稍稍能说明问题模块开发 Step By Step 过程
1. Nginx 介绍 Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/S ...
- Oracle EBS-SQL (OM-1):查询订单发货明细.sql
select mtrh.request_number 发货单号, mmt.transaction_date 发货时间, ...
- 无法关闭的QT程序——思路开阔一下,原来这么简单!
做一个无法关闭的QT程序(想关闭时要在任务管理器里关闭),看似很难, 其实它并不难,只要让程序在关闭时启动它自身就可以了. 上代码: #include <QtGui> class Temp ...
- Go语言语法汇总
最近看了看GoLang,把Go语言的语法总结了一下,做个快速参考 数据类型 var varName type,var var1,var2… type,var varName type = Value, ...
- c++ 17介绍
作者:hearts zh链接:https://www.zhihu.com/question/32222337/answer/55238928来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...
- 【JSP实例】指定用户计数器
不同的用户访问次数是不一样的,因此对于每一个用户的访问次数都要进行统计,以适应需要. 用户登陆的Login.html的源文件: <html> <head> <title& ...
- [置顶] ASP.Net中服务器控件的生命周期
(1)初始化:在此阶段中,主要完成两项工作:一.初始化在传入Web请求生命周期内所需的设置;二.跟踪视图状态.首先,页面框架通过默认方式引发Init事件,并调用OnInit()方法,控件开发人员可以重 ...
- Fast RCNN 学习
因为项目需要,之前没有接触过深度学习的东西,现在需要学习Fast RCNN这个方法. 一步步来,先跟着做,然后再学习理论 Fast RCNN 训练自己数据集 (1编译配置) Fast RCNN 训练自 ...
- paip.oracle query export to insert sql
paip.oracle query export to insert sql 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http:/ ...
- Android 4.4 Kitkat 使能 USB adb 功能
背景 在 Linux-3.8 以后,Android 的内核分支,便去掉了 f_adb,改使用 USB function FS,在用户空间实现 USB adb 功能.这篇文章依据原作者的 Google+ ...