知识屋:更实用的电脑技术知识网站
所在位置:首页 > 教育

java与python之编程之对比:一个简单的代码模板生成程序...

发表时间:2022-03-25来源:网络

http://blog.sina.com.cn/s/blog_4419b53f0100abzb.html

我小部分改进之后代码如下:

#-*- coding:utf-8 -*-

# file :makeBasic.py

#

import os

import sys

import string

import datetime

# python 简单的脚本模板

def main():

if os.path.isfile(sys.argv[1]):

print '%s already exist!' % sys.argv[1]

sys.exit()

basic_template = open(sys.argv[1],'w') # create a file in write mode

today = datetime.date.today() # transform now to 'yyyy-mm-dd' s format

date = today.strftime('%Y')+'-'+today.strftime('%m')+'-'+today.strftime('%d')

filetypes = string.split(sys.argv[1],'.') # 判断文件类型

length = len(filetypes)

filetype = filetypes[length -1]

print 'file type is :'+filetype

if filetype == 'py':

print 'use python mode'

basic_template.writelines('#-*- coding:utf-8 -*-')

basic_template.write('\n')

basic_template.writelines('# file :'+sys.argv[1])

basic_template.write('\n')

basic_template.write('# date :'+date)

basic_template.write('\n')

basic_template.write('##----------------------------------------------------')

basic_template.write('\n')

print 'template create successfully'

else:

print 'not support other file time currently'

basic_template.close() # 关闭文件

if __name__ == '__main__':

main()

使用方法如下:

引用

banxi1988@banxi:~/work/python$ python makeBasic.py  fileRead.py

file type is :py

use python mode

template create successfully

banxi1988@banxi:~/work/python$

而用java来写呢!我自己写了如下一个:

我自己对于Java比较熟悉点,所以用Java写得自认为还是不错的.

从结构等方面来看都是容错性啊等等:

package me.banxi.io;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.PrintWriter;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Scanner;

public class MakeCode{

public static void usage(){

StringBuilder builder = new StringBuilder(1024);

builder.append(" Usage:\n");

builder.append(" unix-like: $ java MakeCode yourSourceFileName \n");

builder.append(" example: $ java MakeCode HelloWorld.java");

builder.append(" -------------------the end ------------------------------");

System.out.println(builder.toString());

}//:usage

public static void notSupport(String fileName){

String []strs = fileName.split(".");

if(strs.length < 1) {

System.out.println("you have not give a file .suffix! file type of "+fileName+"are not support now!");

}else {

System.out.println("file type of "+strs[strs.length-1]+"are not support now!");

}

}//:notSupport

public static boolean cancelCreate( String name ){

System.out.println("file with name of "+name+"is already exists!\n");

System.out.println("do you want to build a new file?(y/n)");

Scanner scanner = new Scanner(System.in);

String yesOrNo = scanner.next();

if(yesOrNo.e("y")) {

return false;

}

return true;

}//:isContinue

private static void createTemplate(File file) {

PrintWriter writer = null;

try {

writer = new PrintWriter(file);

StringBuilder builder = new StringBuilder(256);

builder.append("import java.io.*;\n");

builder.append("import java.util.*;\n");

builder.append("/**\n");

builder.append(" * @author yourName \n");

builder.append(" * @date "+(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())));

builder.append("\n */\n");

builder.append("public class "+file.getName());

builder.append("{\n");

builder.append("\n");

builder.append("}\n");

writer.write(builder.toString());

writer.flush();

} catch (FileNotFoundException e) {

System.out.println("no such file:"+file.getAbsolutePath());

e.printStackTrace();

}finally {

if(writer != null) {

writer.close();

}

}

}// :createTemplate

public static void main(String ... args){

if(args.length < 1){

usage();

System.exit(1);

}//

String fileName = args[args.length -1];

if(fileName.endsWith(".java")){

File file = new File(fileName);

if(file.exists()){

if(cancelCreate(file.getName())){

System.exit(1);

}

}

createTemplate(file);

System.out.println("create java source template successfully!");

System.out.println("file's full name was:"+file.getAbsolutePath());

}else{

notSupport(fileName);

System.exit(1);

}

}//

}//:end MakeCode

/**

* 运行结果:

file with name of MyFileReader.javais already exists!

do you want to build a new file?(y/n)

y

create java source template successfully!

file's full name was:/home/banxi1988/work/tomcat7/JavaIo/MyFileReader.java

生成模板内容:

import java.io.*;

import java.util.*;

**

* @author yourName

* @date 2011-10-10 23:17:40

*

public class MyFileReader.java{

}

*/

python版的我修改之后如下:

主要修改了,如果没有传递参数,提示用法.

时期精确到时分秒.

如果已经有文件了提示是否创建新的:

#-*- coding:utf-8 -*-

# file :makeBasic.py

#

import os

import sys

import string

from datetime import datetime

# python 简单的脚本模板

def usage():

usages = """

Usage:

unix-like usage:$ python makeBasic myfile.py

example : $ python makeBasic helloworld.py

"""

print usages

def main():

if len(sys.argv) < 2:

usage()

sys.exit()

if os.path.isfile(sys.argv[1]):

print '%s already exist!' % sys.argv[1]

yesOrNo = raw_input ('do you still want to create a new file?(y/n)')

if(yesOrNo.strip().lower() == 'n'):

sys.exit()

basic_template = open(sys.argv[1],'w') # create a file in write mode

date = datetime.now().strftime('%Y-%m-%d %H:%M:%S')

filetypes = string.split(sys.argv[1],'.') # 判断将创建的文件是什么类型然后分别处理

length = len(filetypes)

filetype = filetypes[length -1]

print 'file type is :'+filetype

if filetype == 'py':

print 'use python mode'

basic_template.writelines('#-*- coding:utf-8 -*-')

basic_template.write('\n')

basic_template.writelines('# file :'+sys.argv[1])

basic_template.write('\n')

basic_template.write('# date :'+date)

basic_template.write('\n')

basic_template.write('##----------------------------------------------------')

basic_template.write('\n')

print 'template create successfully'

else:

print 'not support other file time currently'

basic_template.close() # 关闭文件

if __name__ == '__main__':

main()

分享到:

2011-10-10 23:21

浏览 1995

评论

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜