Python文件基本操作整理 | w3c笔记 (w3cschool.cn)
(23条消息) python理论9 文件读写_graysu的博客-CSDN博客_f.write(b'0123456789abcdef')
操作文件的函数
- open 函数负责打开文件,并且返回文件对象 即 open( 文件) as f
- read /write / close 三个方法都需要通过文件对象 来调用 即 f.write(内容)
- read 方法可以一次性 读入 并 返回文件的所有内容
- close 方法负责关闭文件 如果忘记关闭文件,会造成系统资源消耗,而且会影响到后续对文件的访问
- 注意:方法执行后,会把文件指针移动到文件的末尾
打开文件:open()
- open (filename,mode) 如果文件存在,返回文件操作对象 ;如果文件不存在,会抛出异常
- open函数默认以 只读方式 打开文件,并且返回文件对象,即默认mode位只读(r)
一般以下较为常用:
读取文件方法
f.read( )
- read 方法默认会把文件的 所有内容一次性读取到内存
- 如果文件太大,对内存的占用会非常严重
f.readline( )
- readline 方法可以一次读取一行内容
- 方法执行后,会把文件指针移动到下一行,准备再次读取
f.readlines( )
- 返回该文件的所有行
- 返回的是一个字符串列表
注:去除\n的方法:
迭代的使用
tell和seek方法
- f.tell()返回文件对象当前的位置,它是从文件开头开始算起的字节数
- f.seek( )如果要改变文件当前的位置,可以使用: f.seek(x,0):从起始位置即文件首行首字符开始移动x个字符 f.seek(x,1):从当前位置即文件首行首字符开始移动x个字符 f.seek(-x,2):从文件的结尾往前移动x个字符
以上两者都针对的是二进制,如果是汉字占两个字节码
pickle模块
pickel模块实现了基本的数据序列和反序列化
通过pickel模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储
通过pickel模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
序列化和反序列化的缺点是有可能python版本不一致
- 使用dump往里写
- 使用load往外读
shelve模块
- 没有所谓模式,它既能读又能写
- 打开的文件,只有主名称,没有后缀名。
- 类似于一个字典
- 创建完一个文件后,会产生3个文件 stu.dat(存储数据) stu.dir(键名和每个键的起始位置点和长度) stu.bak (值名)
JSON模块
(23条消息) Python中JSON的基本使用_Just do it !-CSDN博客
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它主要提供了四个方法: dumps
、dump
、loads
、load
。
使用json.dumps()进行编码 json.loads( )进行解码
dumps()
dump加s 针对字符串,不加针对的是文件
loads()