`
banxi1988
  • 浏览: 153953 次
  • 性别: Icon_minigender_1
  • 来自: 桂林
社区版块
存档分类
最新评论

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

阅读更多
python部分的代码几乎是来息此文章:
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.equalsIgnoreCase("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()
		
分享到:
评论

相关推荐

    java2python--java代码转python工具

    Java到Python的转换工具,如标题“java2python”所示,是编程领域中的一种实用技术,旨在帮助开发者将已有的Java代码转换为Python语言。这种转换对于那些熟悉Java但希望进入Python生态系统,或者想要利用Python特定...

    Python编程入门 第3版.pdf

    由于提供的文件信息中并没有包含实际的文档内容,而是仅提供了一些外部链接和版权声明的描述,这使得无法直接生成具体的Python编程知识点。但根据文件信息中的标题《Python编程入门 第3版.pdf》,我们可以推断这本书...

    GRPC简单应用(Java+Python)

    3. 生成Java代码:使用protoc编译器生成Java代码,这将创建一个服务接口和消息类型的Java类。 4. 实现服务端:创建一个实现了GreeterService的类,处理SayHello请求。 5. 启动服务端:创建一个主类,实例化Server...

    python转java

    在描述中提到的“python代码转java工具”,这可能是一款自动化工具,它尝试将 Python 代码解析并生成对应的 Java 代码。这类工具可能会对简单的 Python 代码转换做得很好,但对于复杂的逻辑或依赖于 Python 特性的...

    基于Python的通用代码生成工具:简化SpringBoot与EasyUI项目源码构建

    该工具是一个基于Python的代码生成平台,旨在简化SpringBoot与EasyUI项目的源码构建过程。它能够利用预定义的工程化模板,快速生成整个项目的源代码,支持多种语言和框架,理论上适用于任何开发语言和开源框架。该...

    Java调用python所用到的jar包

    在Java编程环境中,有时我们需要利用Python的某些功能或者库,这时就需要通过Java调用Python来实现。这个场景通常涉及到Java与Python的交互,这在跨语言集成开发中非常常见。"Java调用python所用到的jar包"指的是...

    人人代码生成器贼好用啊

    人人代码生成器可能支持多种编程语言,如Java、Python、C#等,并且能够处理各种复杂的业务场景。 使用人人代码生成器,用户通常需要进行以下步骤: 1. 定义模板:根据项目需求,设定模板规则,包括类名、属性、方法...

    Thrift中实现Java与Python的RPC互相调用示例代码.rar

    它通过定义一种中间语言(IDL,Interface Definition Language)来描述服务接口,然后自动生成各种编程语言的客户端和服务器端代码,使得不同语言之间可以进行无缝通信。在本示例中,我们将探讨如何使用Thrift在Java...

    具有按需候选生成的自动程序修复_Java_Python_下载.zip

    标题“具有按需候选生成的自动程序修复_Java_Python_下载.zip”表明这是一个关于自动程序修复技术的资源包,特别关注Java和Python这两种编程语言。自动程序修复(Automatic Program Repair,简称APR)是软件工程领域...

    thrift 的 java 和 python结合例子

    这个`MyService`定义了一个简单的服务,有一个`sayHello`方法,接收一个字符串`name`,返回一个字符串。 接下来,我们需要使用Thrift编译器将.thrift文件编译成目标语言的代码。对于Java和Python,这将生成服务端和...

    中间代码生成代码(中缀表达式转换为四元式)

    Python实现的编译原理中间代码生成程序,使用了PyQt5写图形界面 题目:设计一个程序,该程序能够将形如x=y op z的简单赋值语句翻译为对应的四元式序列,其中op可为+、-、*、/等二元运算符。要求用图形界面方式编程. ...

    “使用元编程为空指针异常生成动态补丁”(SANER'17)中描述的程序修复工具的开放科学代码_Java_Python_下.zip

    Python编程语言虽然不像Java那样有强制的空指针检查,但也有类似的问题,如`NoneType`对象的误用。因此,NPEFix可能也提供了针对Python的解决方案,尽管Python的异常处理机制和Java有所不同。 总的来说,这个工具为...

    Python 核心编程 第二版

     19.2 Tkinter与Python编程 534  19.3 Tkinter举例   19.4 其他GUI简介   19.5 相关模块和其他GUI   19.6 练习   第20章 Web编程   20.1 介绍   20.2 使用Python进行Web应用:创建一个简单的...

    selenium+java+python自动化测试

    【标题】"selenium+java+python自动化测试" 涉及到的是使用Selenium这一强大的Web自动化测试工具,结合Java和Python两种编程语言进行网页自动化测试的方法和实践。Selenium是一个开源的测试框架,它允许开发人员模拟...

    【Java与Python实现】最实际与高效生成数据库高级声明式SQL脚本神器研发

    本文将深入探讨如何使用Java和Python这两种流行的编程语言来高效地生成高级的声明式SQL脚本,这对于数据库的自动化管理和数据操作具有极大的价值。在实际的项目中,这种神器的研发能够显著提升开发效率,降低错误率...

    这是一个用 java 与 python语言完成剑指 offer 上编程题的解法仓库,所有做法均编译通过。.zip

    其次,Python编程方面,其简洁的语法和强大的库使其在解决算法问题时非常高效: 1. **内置数据结构**:Python提供了丰富的内置数据结构,如列表、元组、字典和集合,它们在解决问题时非常实用。 2. **函数式编程**...

    python高级编程

    综上所述,Python高级编程是一个涉及广泛技术和实践的领域,它不仅包括编写高质量的代码,还涉及到软件工程的各个阶段,从需求分析到部署和维护,以及性能优化和语言的最新发展。掌握这些高级主题和最佳实践对于成为...

    pyobfuscate:混淆python源代码替代python源代码的小工具-源码

    pyobfuscate是一个源代码模糊器:它生成Python源代码对于人类来说很难阅读,但对于Python来说仍然是可执行的口译译员 为什么要混淆? -------------- 混淆对于开源来说没有什么意义 (http://www.opensource.org/)...

    Python核心编程第二版

     3.6 第一个Python程序   3.7 相关模块和开发工具   3.8 练习   第4章 Python对象   4.1 Python 对象   4.2 标准类型   4.3 其他内建类型   4.3.1 类型对象和type类型对象   4.3.2 None--...

Global site tag (gtag.js) - Google Analytics