python vs java: 文件操作 + import 导入操作

需求1(文件操作:  java  vs  python)

实现备份某个文件的需求,如: 输入一个“/aa/bb/c.txt” 或"/aa/bb/cc" , 验证输入,

                                        看是否存在该文件:

                                                 若有则在同级目录下备份此文件,生成c2.txt

                                                 若无该文件则在同级目录下创建此文件,添加”hello world“内容,生成备份文件c2.txt

                                        若输入为目录,则提示错误!

java:  第一步 定义方法 fileCopyManage(String file): 集中管理正确文件的copy操作

public static File fileCopyManage(String file)throws IOException{
		String parts[]=file.split("/");//    aa/bb/a.txt
		int len=parts.length;
		String txt=parts[len-1];//文件名: a.txt
		
		String txt2=txt.substring(0, txt.indexOf("."));//a--->a2
		txt2+="2";
		String type=txt.substring(txt.indexOf("."));
		txt2+=type;
	   String file2=file.replaceAll(txt,txt2);
	    
		       //a.txt--复制内容----->a2.txt
		InputStream instream=new FileInputStream(file);
		OutputStream out=new FileOutputStream(file2);
		
		int word=instream.read();
		while(word!=-1){
			out.write(word);
			word=instream.read();
		}
		out.flush();
		out.close();
		instream.close();
	return  new File(txt2);
}

java:  第二步 定义方法 input()  过滤输入的信息:筛除空目录,保证有此文件存在=>调用fileCopyManage(String file)备份

public static File input() throws IOException{
		//输入文件信息
		Scanner scan=new Scanner(System.in);
		System.out.println("请输入要copy的原文件:");
		String in=scan.next();
		String parts[]=in.split("/");
		
		int len=parts.length;
		String txt=parts[len-1];
		File ff=null;
//		取出最后一个--元素: 判断是否为文件名?
		if(txt.contains(".")){
			System.out.println("这是一个文件:"+txt);
			//判断文件是否存在
			File f=new File(in);
			if(!f.exists()){
				System.out.println("文件不存在,将创建简单helloworld文件内容。。。");
			//创建目录
				String sub=in.substring(0, in.length()-txt.length()-1);
				File dir=new File(sub);
					if(!dir.exists()){//目录没有
						System.out.println("目录不存在,创建目录+文件....");
						dir.mkdirs();
					}else{//目录存在
						System.out.println("目录已存在,创建文件........");
					}
			//创建文件,写入helloworld  
				File former=new File(in);
				former.createNewFile();
						//写入文件==一定的内容
				OutputStream out=new FileOutputStream(former);
				out.write("hello world! \nhello2".getBytes());
				out.flush();out.close();
						//创建复制文件---假定同级目录:a2的形式
				ff=fileCopyManage(in);
			}else{//文件路径存在, 是一个文件 
				System.out.println("文件已存在");
				 ff=fileCopyManage(in);
			}
		}else  {//输入了空目录
			System.out.println("这是一个目录.....error"); 
			return null;
		}
		System.out.println("拷贝正常结束.....");
		return ff;//返回自动备份后的文件
	} 

java:  第三步 在main()调用input()启动程序

public static void main(String[] args) throws IOException {
		input() ;
}

python:  定义正确文件的拷贝方法copyfile(name),程序直接调用

import os
#输入访问的文件----判断是否存在===是否文件
def copyfile(name): 
       dir= os.path.dirname(name)       #取出目录,取出文件名    /aa/bb
       file=os.path.basename(name)     #a.txt
       file2=file[:file.index(".")]+"2"  ####a2
       type=file[file.index("."):]       ####.txt
       file2+=type     #a2.txt
       full_file2=dir+"/"+file2    #/aa/bb/a.txt
       print("备份文件名:",file2,"全路径:",full_file2)
       
       #创建--备份文件
       ff1=open(name,"r")
       ff2=open(full_file2,"w")
       
       mess=ff1.read()
       ff2.write(mess)
       ff2.flush()
       ff2.close()
       ff1.close()
       print("备份完成!!!")
                                                      
name=input("请输入文件名:")
if os.path.exists(name): #存在
    if os.path.isfile(name): #是文件--->拷贝同目录: a2.txt
        copyfile(name)
    else:
        print("这是一个存在的目录.......error")
#输入的文件不存==创建新文件“hello”,   复制内容
# if (os.path.exists(name)==False):#分解dir  +  filename
else:  #输入找不到
    dir=os.path.dirname(name)
    fname=os.path.basename(name)
    #是否存在目录
    if fname.__contains__("."):  #输入的是: 文件
            
        if os.path.exists(dir)==False:#没有此目录:创建目录+文件
            os.makedirs(dir)
        file=open(name,"w")#创建文件
        file.write("hello\nhello2")
        file.flush()
        file.close()
            #调用方法法: 备份文件
        copyfile(name)
    else:
        print("未知的目录.......error")

需求2(import操作: java  vs  python)

实现类似java mvc 三层验证登录的功能,必须多个文件互相调用,完成验证成功和失败的操作!  

java:  第一个文件 base.properties
name=root
pwd=123

java:  第二个文件 service.java   定义连个static方法:  select(     调用check()    )

public class service {
	public static String tvs[]={"天龙八部","水浒","三国"};
	public static String mvs[]={"2012","侏罗纪公园","黑客帝国"};
	
	private  static boolean check(String name,String pwd) throws FileNotFoundException, IOException{
		//加载数据文件: 验证密码+用户名
		Properties per=new Properties();
		per.load(new FileInputStream("/home/da/eclipse_workspace/Java1/src/mvc/base.properties"));
		
		String name2=per.getProperty("name");
		String pwd2=per.getProperty("pwd");
		System.out.println("name2--pwd2: "+name2+"---"+pwd2);
		
		if(name.equals(name2) && pwd.equals(pwd2)){
			return true;
		}
		return false;
	}
	
	public static Map<String,String[]> selectTv(String name,String pwd) throws FileNotFoundException, IOException{
		boolean flag=check(name,pwd);
		
		if(flag){
			Map<String,String[]> map=new HashMap<>();
			map.put("tvs", tvs);
			map.put("mvs", mvs);
			
			System.out.println("登录成功!");
			return map;
		}
		System.out.println("login failed......");
		return null;
	}

java:  第三个文件 controller.java   调用service.java 的静态方法

public static void main(String[] args) throws FileNotFoundException, IOException {
		    //输入用户名+密码: 验证---》显示结果
		Map<String ,String[]> map=service.selectTv("root1","123");
		
                if(map!=null){
		String [] tvs=map.get("tvs");
		String [] mvs=map.get("mvs");
		for(String st:tvs){
			System.out.print(st);
		}
		System.out.println("-------------------");	
		for(String st:mvs){
			System.out.print(st);
		}
	}


python 第一个文件:【test包】mvc.py   在test包下: 有两个子包service【show.py】,db【setting.py】

from test.service import show
#查询节目列表-----验证登录(db=settting.py   dbinfo{})-----logic.py[  showinfo{}   ]

show.select("root2","123")

python 第二个文件service 层:【test.service包】show.py

from test.db import setting

showinfo={
    "tv":["三国","水浒","西游"]    ,
    "movie":["黑客帝国","侏罗纪公园"]
    }
def checkLogin(conf1,conf2):
    if conf1==setting.dbinfo["name"] and conf2==setting.dbinfo["pwd"]:
        print("登录成功!")
        return True
    else:
        print("failed login ......")

def select(conf1,conf2):
   if  checkLogin(conf1,conf2):#登录成功,显示信息---电影,电视
       print("tv:----",showinfo["tv"])
       print("movie:----",showinfo["movie"])

python 第三个文件model 层: 【test.db包】setting.py

dbinfo={
    "name":"root",
    "pwd":"123"
    }

猜你喜欢

转载自blog.csdn.net/eyeofeagle/article/details/79335226