IO编程
Input Stream: 数据从外面(磁盘、网络)流进内存
Output Stream:数据从内存流出外面
外设CPU与内存速度不匹配的问题:
- 同步IO:程序与数据写入按线性运行,一方必须等待另一方做完
- 异步IO:程序(CPU执行)与数据写入按并行运行。
两者的最大区别是是否 等待IO执行的结果,
异步IO具有相当复杂的编程模型:回调模式、轮询模式等
文件读写
Python 内置读写文件的函数,用法和C兼容。
读文件
- read(): 适用于文件小,文件一次性读取比较方便的情况
- read(size): 不确定文件大小,可适用循环调用read(size)
- readlines(): 一行行读,返回一个list,适用于配置文件的读取等
|
|
写文件
调用open()
函数时,传入标识符w
或者wb
表示写文本文件或二进制文件.适用write()函数将要写入的字符串写入文件:
|
|
StringIO 和 BytesIO
在内存中操作String和Bytes
|
|
操作文件和目录
|
|
序列化(pickling)
把变量从内存中变成可存储或传输的过程称之为序列化,序列化之后内容可以写入磁盘,或者通过网络传输到另外的机器中。
反过来,把变量内容从序列化的对象读到内存里称为反序列化,即unpickling。
Python中提供了pickle
模块实现序列化。
|
|
序列化成JSON
该序列化更通用,更符合web标准,一般使用该种方法,进行序列化
|
|