内容简介: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,满足了我们从文件中获取数据的需求。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Effective Engineer
Edmond Lau / The Effective Bookshelf, Palo Alto, CA. / 2015-3-19 / USD 39.00
Introducing The Effective Engineer — the only book designed specifically for today's software engineers, based on extensive interviews with engineering leaders at top tech companies, and packed with h......一起来看看 《The Effective Engineer》 这本书的介绍吧!
RGB转16进制工具
RGB HEX 互转工具
URL 编码/解码
URL 编码/解码