Python篇:文件操作

本文围绕Python展开,介绍了文件操作,包括打开、读写、定位和关闭等,还提到了os模块处理操作系统相关功能。重点讲解了json和pickle模块,阐述了python类型数据与JSON数据的转换规则、数据类型编解码,以及两者的区别,如JSON用于多语言数据交换,pickle用于Python对象持久化和传输。

文件操作介绍

打开

默认数据是加载到内存中,结果也是保存到内存中, 程序执行结束,所有的数据释放。
在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件。
open(文件名,访问模式)
eg:
f = open(‘test.txt’, ‘w’)
如果文件不存在那么创建,如果存在那么就先清空,然后写入数据

打开方式

是否有读权限是否有写权限文件不存在,是否会创建文件文件操作会清空文件内容么
ryesnonono
wnoyesyesyes
anoyesyesno
w+yesyesyesyes
a+yesyesyesno
r+yesyesnono

对于二进制文件:
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
jsonpython
objectdict
arraylist
stringunicode
number(int)int,long
number(real)float
TRUETrue
FALSEFalse
nullNone
python to json
pythonjson
dictobject
list,tuplearray
str,unicodestring
int,long,floatnumber
TrueTRUE
FalseFALSE
Nonenull

注:
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序列化可能还有差异。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值