本节内容
IO编程
文件读写
序列化
一、IO编程
IO编程简单来说就是读写操作。
IO中最重要的是流概念:什么是流(Stream):流就是一个数据传输的通道。通道传输东西他是单向的,所以我们的流有输入流与输出流。
输入流:指从文件到程序
输出流:从程序到外部文件
二、文件读写操作
读写文件是最常见的IO操作。Python内置了读写文件的函数。
在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。
python提供了函数 open来创建一个file对象(文件对象/目录对象)
open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True) file:文件路径 mode:文件的处理模式 buffering:文件缓冲区 encoding:编码
file对象的属性
进行文件的读写:
#!/usr/bin/env python #-*- coding:utf-8 -*- # author:Dragon war # datetime:2018/9/6 14:45 # software: PyCharm # IO读写操作 # 读文件 # 创建一个文件对象 file=open('G://test.txt','r') # 读取文件 read(count) 方法读取:传入count读取count字节的数据 不传入他会尽可能的读取多的自己额,有可能直接全部读完 text=file.read(3) #关闭打开的文件 file.close() print(text)
# 写 file=open('G://test.txt','w') #写文件 file.write("这是我写的新文件") file.close()
三、序列化
如果我们想把变量存储到文件中,那么就需要序列化。变量只有序列化后才能进行在网络间传输。
如果我们下次需要这个变量那我们需要从文件中把变量读出来,这称为反序列化
Python提供了pickle
模块来实现序列化
#!/usr/bin/env python #-*- coding:utf-8 -*- # author:Dragon war # datetime:2018/9/6 14:45 # software: PyCharm # IO读写操作 # # # 读文件 # # 创建一个文件对象 # # 读取文件 read(count) 方法读取:传入count读取count字节的数据 不传入他会尽可能的读取多的自己额,有可能直接全部读完 # text=file.read(3) # #关闭打开的文件 # file.close() # print(text) d=dict(name='小明',age=20,score=90) import pickle #序列化 by=pickle.dumps(d) # 写入文件 file=open("G://文件.txt",'wb') file.write(by) file.close() # 读取:反序列化 file=open("G://文件.txt",'rb') ds=pickle.load(file) print(ds) file.close()