Python学习笔记—第五天,文件读写以及基本的序列化

栏目: Python · 发布时间: 6年前

内容简介:Python学习笔记—第五天,文件读写以及基本的序列化

当我们用到大量的数据时,不可能将数据都写入程序中,可以写入文件里,在程序需要用到时,去读取或者修改它。

读写文件

以读文件的模式打开一个文件对象,使用内置函数open(),将会返回一个 file 对象,基本语法格式如下:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
    Open file and return a stream.  Raise IOError upon failure.

open('C:\\***\\test.txt', mode)

下面是mode的一些参数,默认为r 只读:

'r':以只读方式打开文件(默认)

'w':以写入的方式打开文件,会覆盖已存在的文件

'x':如果文件已经存在,使用此模式打开将引发异常

'a':以写入模式打开,如果文件存在,则在末尾追加写入

'b':以二进制模式打开文件

't':以文本模式打开(默认)

'+':可读写模式

'U':通用换行符支持

open(filename,w)为文件只用于写入不可读,如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

文件打开使用后要关闭文件,f.close()

文件对象方法

f.close():关闭文件

f.read(size=-1):从文件读取size个字符,当未给定size或给定负值的时候,读取剩余的所有字符,然后作为字符串返回

f.readline():以写入模式打开,如果文件存在,则在末尾追加写入

f.write(str):将字符串str写入文件

f.writelines(seq):向文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象

f.seek(offset, from):在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,偏移offset个字节)

f.tell():返回当前在文件的位置

pickle模块

pickle模块实现了基本的序列化和反序列化

我们把变量从内存中变成可存储或传输的过程称之为序列化,

序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。

反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。

import pickle
pickle_file = open('C:\\***\\test.txt', 'wb')

pickle.dump(obj, file[, protocol])

我们使用pickle.dump将一个对象序列化,然后写入file。

然后关掉文件,pickle_file.close()

就将对象写入了test.txt文件,以长期保存起来。

如果我们要使用test.txt文件中数据,需要用pickle.load()方法,将其反序列化出对象。

f = open('test.txt','rb') #只读,以二进制模式打开test.txt文件

pickle_file = pickle.load(f)  #反序列化出对象

f.close()

当打开的文件为空或不存在时会报错:EOFError: Ran out of input。检查是否输入的文件名或路径有误。

这样我们就从test.txt中反序列化出了对象 f,满足了我们从文件中获取数据的需求。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

嵌入式系统开发之道

嵌入式系统开发之道

2011-12 / 69.00元

《嵌入式系统开发之道:菜鸟成长日志与项目经理的私房菜》用平易朴实的语言,以一个完整的嵌入式系统的开发流程为架构,通过一位“菜鸟”工程师与项目经理的诙谐对话,故事性地带出嵌入式系统概念及开发要素,并点出要成为一名称职的嵌入式系统工程师,在实际工作中所必须具备的各项知识及技能。 《嵌入式系统开发之道:菜鸟成长日志与项目经理的私房菜》可以分为三大部分:第1、3、4、17、18、19章和附录D为嵌入......一起来看看 《嵌入式系统开发之道》 这本书的介绍吧!

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具