python day8

本节内容

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:编码
View Code

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)
View Code
#
file=open('G://test.txt','w')
#写文件
file.write("这是我写的新文件")
file.close()
View Code

三、序列化

如果我们想把变量存储到文件中,那么就需要序列化。变量只有序列化后才能进行在网络间传输。

如果我们下次需要这个变量那我们需要从文件中把变量读出来,这称为反序列化

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()
View Code
原文地址:https://www.cnblogs.com/wuzhilong/p/9572343.html