Python初学笔记-io流和异常
来源:互联网 发布:js判断哪个tr被双击 编辑:程序博客网 时间:2024/05/19 18:14
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[]=newbyte[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............");
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的作用
以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
这也是Python中的io流简便的原因了,除此以外open中还有其他的参数,例如encoding,主要用来调节编码格式,就不细说了。
异常:
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初学 io流及异常和异常的处理
- IO流和异常
- Java学习笔记之异常和IO流
- python初学笔记-类和装饰
- io流,关键字和异常
- 异常,IO-File笔记
- Python初学笔记~
- Python初学笔记(1)
- python初学笔记(2)
- Python初学笔记
- Python 初学笔记
- Python初学笔记
- python初学笔记
- python初学的笔记
- 初学python笔记。
- python初学笔记
- Python初学笔记
- 7-29 修理牧场(25 分)
- 进制的转换
- 内核空间与用户空间的通信方式
- js比较器组件Comparator.js
- interleaving-string
- Python初学笔记-io流和异常
- Dragon of Loowater UVA
- 自练题20170801
- 关于add(2)(3)(4)的记录
- codeforces 812E
- 蓝桥杯 数列排序
- JAVA_Web知识体系(浅入浅出)
- hihocoder1586-2017acm北京网络赛9&线段树&思维&板子- Minimum
- 用线段树求解坐标矩阵中的交并集面积思路及其模板代码