Python初学笔记-io流和异常
2017-09-25 20:44
281 查看
io流:
读写文件是最常见的IO操作。python内置了读写文件的函数。
读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统完成的,现代操作系统不允许普通的程序直接对磁盘进行操作,所以,
读写文件就是请求操作系统打开一个文件对象通常称为文件描述符,然后,通过操作系统提供的借口从这个文件中读取数据,或者把数据写入这个文件对象
今天依然使用Java作对比
JAVA 字节流:
InputStream in=new FileInputStream("/Users/liupanpan/Desktop/生成代码/a/铜人.jpg");源文件路径
OutputStream out=new FileOutputStream("/Users/liupanpan/Desktop/生成代码/b/铜人.jpg");目标文件路径
byte b[]=new
byte[1024];
int len=0;
循环读取源文件,直到读取不到了为止
while(true){
len=in.read(b);
if(len == -1){
break;
}
out.write(b,0,len);
刷新
out.flush();
}
out.close();
in.close();
System.out.println("OK............");
JAVA 字符流:
BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream("/Users/liupanpan/Desktop/生成代码/a/Demo.txt"),"utf-8"));
PrintWriter out=new PrintWriter(new OutputStreamWriter(new FileOutputStream("/Users/liupanpan/Desktop/生成代码/b/Demo.txt"),"utf-8"));
String str=null;
while(true){
str=in.readLine();
if(str==null){
break;
}
System.out.println(str);
out.println(str);
out.flush();
}
out.close();
in.close();
System.out.println("OK.............");
内容差不多,可以参考上面
接下来是Python的io流
Python中的io流相比Java中要简便很多具体看下面
语法open()
Python中无论是读取源文件还是写入新文件都是用同一个方法具体使用方法接下里介绍
可以明显的看出,Python同样是读写文件,代码量却相比Java少了很多,那这都是因为open()方法的灵活性,可以明显的看到第二行的open方法在后面比第一个多了一个参数,它主要控制了open的作用
这也是Python中的io流简便的原因了,除此以外open中还有其他的参数,例如encoding,主要用来调节编码格式,就不细说了。
异常:
在异常方面跟Java没多大差异,这里就主要说下区别了
1.语法
在Python中try的全语法是
try:
except:
else:
finally:
相比Java来说except就是Java里的catch,还有就是多了一个else,这个else呢就是执行过try中的代码,但是没有 报异常时执行,跟except刚好相反
2.多异常处理方式
在Java中多异常的处理方式在jdk1.7的版本以前都是以多个catch处理,当jdk版本为1.7以及以上时,Java提供了
另一种方式catch(A | B | C e),而Python中的方式与Java的第二种方式有些类似,为except(A,B,C) as e
其他的就你没什么了,那今天的笔记就到这了!!
读写文件是最常见的IO操作。python内置了读写文件的函数。
读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统完成的,现代操作系统不允许普通的程序直接对磁盘进行操作,所以,
读写文件就是请求操作系统打开一个文件对象通常称为文件描述符,然后,通过操作系统提供的借口从这个文件中读取数据,或者把数据写入这个文件对象
今天依然使用Java作对比
JAVA 字节流:
InputStream in=new FileInputStream("/Users/liupanpan/Desktop/生成代码/a/铜人.jpg");源文件路径
OutputStream out=new FileOutputStream("/Users/liupanpan/Desktop/生成代码/b/铜人.jpg");目标文件路径
byte b[]=new
byte[1024];
int len=0;
循环读取源文件,直到读取不到了为止
while(true){
len=in.read(b);
if(len == -1){
break;
}
out.write(b,0,len);
刷新
out.flush();
}
out.close();
in.close();
System.out.println("OK............");
JAVA 字符流:
BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream("/Users/liupanpan/Desktop/生成代码/a/Demo.txt"),"utf-8"));
PrintWriter out=new PrintWriter(new OutputStreamWriter(new FileOutputStream("/Users/liupanpan/Desktop/生成代码/b/Demo.txt"),"utf-8"));
String str=null;
while(true){
str=in.readLine();
if(str==null){
break;
}
System.out.println(str);
out.println(str);
out.flush();
}
out.close();
in.close();
System.out.println("OK.............");
内容差不多,可以参考上面
接下来是Python的io流
Python中的io流相比Java中要简便很多具体看下面
语法open()
Python中无论是读取源文件还是写入新文件都是用同一个方法具体使用方法接下里介绍
f=open("/Users/liupanpan/Desktop/生成代码/a/Demo.txt") of=open("/Users/liupanpan/Desktop/生成代码/b/Demo.txt",'w') for line in f: of.write(line) print("OK")
可以明显的看出,Python同样是读写文件,代码量却相比Java少了很多,那这都是因为open()方法的灵活性,可以明显的看到第二行的open方法在后面比第一个多了一个参数,它主要控制了open的作用
模式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
异常:
class Aex(Exception): def __str__(self): return "Aex" class Bex(Exception): def __str__(self): return "Bex" class Cex(Exception): def __str__(self): return "Cex" n=int(input("请输入整数:")) try: if n == 1: raise Aex() if n == 2: raise Bex() if n == 3: raise Cex() print("OK") except(Aex,Bex,Cex) as e: print(e)
在异常方面跟Java没多大差异,这里就主要说下区别了
1.语法
在Python中try的全语法是
try:
except:
else:
finally:
相比Java来说except就是Java里的catch,还有就是多了一个else,这个else呢就是执行过try中的代码,但是没有 报异常时执行,跟except刚好相反
2.多异常处理方式
在Java中多异常的处理方式在jdk1.7的版本以前都是以多个catch处理,当jdk版本为1.7以及以上时,Java提供了
另一种方式catch(A | B | C e),而Python中的方式与Java的第二种方式有些类似,为except(A,B,C) as e
其他的就你没什么了,那今天的笔记就到这了!!
相关文章推荐
- python初学 io流及异常和异常的处理
- python学习笔记(四):异常情况处理
- python3 笔记8异常
- 初学Python笔记(一)
- Python 初学笔记:递归解决0-1背包问题
- [PYTHON] 核心编程笔记之十-Python错误和异常
- python初学笔记(一)---实例学python
- Java基础知识强化之IO流笔记07:自定义的异常概述和自定义异常实现
- Python-初学笔记之集合(循环)
- Python初学笔记:调用Windows命令打印文件
- python基础学习笔记-文件与异常
- python基础教程_学习笔记10:异常
- Python基础教程 第8章: 异常 学习笔记
- 20170612初学笔记之python+linux
- Python初学笔记
- Python 初学笔记
- 【python笔记】异常
- 【笔记】2、初学python3网络爬虫——爬虫的基本原理
- Python3.2官方文件翻译--课堂笔记和异常是阶级
- Python 【异常】 学习笔记