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模式:
函数的mode方式详解.png)
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 |