文件操作
- 文件操作介绍
- 打开
- 打开方式
- File对象的属性
- 文件的读写
- File对象的常用方法
- 读
- 写
- 定位
- 关闭
- os模块详解
- os简介
- 常用功能
- 关于操作系统
- 关于文件与目录
- 路径
- 操作
- json和pickle模块详解
- json
- 简介
- python类型数据和JSON数据格式互相转换规则
- json to python
- python to json
- 数据类型编解码
- 序列化及反序列化常用参数
- pickle
- 简介
- JSON和pickle模块的区别
文件操作介绍
打开
默认数据是加载到内存中,结果也是保存到内存中, 程序执行结束,所有的数据释放。
在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件。
open(文件名,访问模式)
eg:
f = open(‘test.txt’, ‘w’)
如果文件不存在那么创建,如果存在那么就先清空,然后写入数据
打开方式
是否有读权限 | 是否有写权限 | 文件不存在,是否会创建文件 | 文件操作会清空文件内容么 | |
---|---|---|---|---|
r | yes | no | no | no |
w | no | yes | yes | yes |
a | no | yes | yes | no |
w+ | yes | yes | yes | yes |
a+ | yes | yes | yes | no |
r+ | yes | yes | no | no |
对于二进制文件:
rb, wb, ab, wb+, ab+, rb+
File对象的属性
文件的读写
File对象的常用方法
读
read | 读取指定字节,默认是全部内容 |
readline | 读取一行内容 |
readlines | 读取全部内容,返回一个以行为单位的列表 |
写
write | 从指针所在位置写入字符串内容 |
writelines | 将列表里的每个元素写入文件中,自动换行 |
定位
tell | 指针当前位置 |
seek | 移动指针位置 |
seek(offset, from)有2个参数:
offset:偏移量
from:方向 0:表示文件开头; 1:表示当前位置; 2:表示文件末尾
关闭
方法一:
调用close()方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的
方法二:
Python引入了with语句来自动帮我们调用close()方法
python中的with语句使用于对资源进行访问的场合,保证不管处理过程中是否发生错误或者异常都会自动执行规定的(“清理”)操作,释放被访问的资源,比如有文件读写后自动关闭、线程中锁的自动获取和释放等
eg:
with open('test.txt', 'w') as f: #同 f = open('test.txt', 'w'), with执行结束后
#自动调用f.close()
os模块详解
os简介
os,语义为操作系统,处理操作系统相关的功能,可跨平台。 比如显示当前目录下所有文件/删除某个文件/获取文件大小……
常用功能
关于操作系统
关于文件与目录
路径
操作
json和pickle模块详解
json
简介
- JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。
- JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。
- 这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
python类型数据和JSON数据格式互相转换规则
json to python
json | python |
---|---|
object | dict |
array | list |
string | unicode |
number(int) | int,long |
number(real) | float |
TRUE | True |
FALSE | False |
null | None |
python to json
python | json |
---|---|
dict | object |
list,tuple | array |
str,unicode | string |
int,long,float | number |
True | TRUE |
False | FALSE |
None | null |
注:
python 中str类型到JSON中转为unicode类型,None转为null,dict对应object;
pyhton中的集合不能转成json格式。
数据类型编解码
dump:将对象序列化并保存到文件
load:将序列化字符串从文件读取并反序列化
dumps与loads只返回序列化或反序列化的数据,不会操作文件
序列化及反序列化常用参数
- ensure_ascii=False: 中文存储需要设定
- indent=4: 增加缩进,增强可读性,但缩进空格会使数据变大
- separators=(’,’,’:’): 自定义分隔符,元素间分隔符为逗号, 字典key和value值的分隔符为冒号
- sort_keys=True: 字典排序
pickle
简介
python的pickle模块实现了python的所有数据序列和反序列化。与JSON不同的是pickle不是用于多种语言间的数据传输,它仅作为python对象的持久化或者python程序间进行互相传输对象的方法,因此它支持了python所有的数据类型。
JSON和pickle模块的区别
1、JSON只能处理基本数据类型。pickle能处理所有Python的数据类型。
2、JSON用于各种语言之间的字符转换。pickle用于Python程序对象的持久化或者Python程序间对象网络传输,但不同版本的Python序列化可能还有差异。