Python基础(10)——文件IO、异常处理、StringIO、BytesIO
文件IO
IO操作,使用open() 函数,还可以使用with上下文关键字来确保打开的文件操作符在退出时被关闭。
1 | with open(path, mode [, encoding]) as f: |
f.read([size]) 从文件读取指定的字节数,如果未给定或为负则读取所有。f.write() 写文件 # 如果要写入字符串以外的数据,先将他转换为字符串f.close() 关闭文件f.readline([size]) 读取整行内容,包括\n字符, 如果给定参数则从文件开始读取指定的字符个数f.readlines([sizeint]) 读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区。f.tell() 返回一个整数,表示当前文件指针的位置(就是到文件头的比特数).f.seek(偏移量,[起始位置]) 用来移动文件指针 #偏移量:单位:比特,可正可负起始位置:0-文件头,默认值;1-当前位置;2-文件尾
mode模式:
os模块
1 | import os |
异常处理
在Python中处理异常使用try...except...[else...][finally...]关键字。
格式:
1 | try: |
执行顺序:进入try语句块,如果发生错误,依次匹配except中的异常类,匹配成功进入该异常处理块,如果不报错,会执行else中的语句,而finally不管有没有报错都会执行…
1 | def div(x , y): |
StringIO
很多时候,数据读写不一定是文件,也可以在内存中读写,而且更快。
StringIO模块主要用于在内存缓冲区中读写数据。它只有一个StringIO类,所以它的可用方法都在类中。此类中的大部分函数都与对文件的操作方法类似。
1 | from io import StringIO |
BytesIO
StringIO操作的只能是str,如果要操作二进制数据,就需要使用BytesIO。BytesIO实现了在内存中读写bytes,先创建一个BytesIO对象,然后写入一些bytes。
1 | from io import BytesIO |