day17总结-文件操作

文件操作

1.数据本地化和数据持久化

通过文件将数据存到硬盘中

2.文件内容操作

基本步骤:打开文件 --> 操作文件(读/写)--> 关闭文件

2.1打开文件

open(file,mode,encoding=None) --以指定方式打开指定文件,并返回被打开的 文件对象

file --需要打开的文件路径,传参时实参为字符串格式,需要用引号括起来

​ ./ --当前文件所在目录(可以省略)

​ ../ --当前文件所在目录的上层目录

mode --表示打开方式,传参时实参为字符串格式,需要用引号括起来

​ r --默认值,以读的方式打开文件(只能进行读操作)

​ w --以写的方式打开文件(只能进行写操作),会覆盖原文件内容

​ a --以写的方式打开文件(只能进行写操作),在原文件内容后追加

​ rb/br --以读的方式打开文件(只能进行读操作),读出来的内容是二进制数据

​ wb/bw --以写的方式打开文件(只能进行写操作),将二进制数据写入文件中

​ + --以读写的方式打开

encoding --文本编码方式,传参时实参为字符串格式,需要用引号括起来

​ utf-8,文本编码只针对文本文件,二进制文件不能设置编码方式

2.2文件操作

2.2.1文件读操作

文件对象.read(字节数) --获取文件中读写位置往后字节数的内容并返回(回车算一个字节),不写字节数参数表示从读写位置开始,读到文件结尾,并且返回(初始读写位置默认在文件开头),结果类型是str

文件对象.seek(字节数) --将读写位置移动到指定字节数处,为0表示文件最开始的位置

文件对象.readline(字节数) --读取当前读写位置所在行后字节数的内容,若字节数为空,则读取读写位置到当前行末的内容并返回,结果类型是str

文件对象.readlines(字节数) --读取读写位置所在行后字节数的内容,结果是list,且list列表的元素是每行内容的字符串格式(加引号)。元素内容不包含读写位置所在行之前的内容。且最后的读写位置所在行的整行内容都会作为元素内容(即使不是在行末)。此时读写位置也会移到下行行首。若不加字节数保留为空则读取读写位置所在行后到文件末尾的内容,结果是list,且list列表的元素是每行内容的字符串格式(加引号),元素内容不包含读写位置所在行之前的内容。

2.2.2文件写操作

文件对象.write(写的内容) --将制定内容写到指定文件中,根据open时mode是w还是a,来决定是覆盖还是追加内容。返回结果是写入的str内容的长度。

文件对象.writelines() --和write差不多呢。。

2.3关闭文件

文件对象.close()

注意:当打开文件的时候如果以读的方式打开一个不存在的文件会报错,以写(w,a)打开一个不存在的文件则不会出现异常,并且会自动创建对应的文件再打开。

2.4二进制文件的操作

2.4.1二进制操作

打开文件时mode加b参数,且encoding不能再写utf-8了

rb --读的时候,获取到的是二进制数据(bytes)

wb --写的时候要求写入内容类型是二进制

普通的文本文件可以通过二进制的形式去打开,影响只是获取到的内容,和写进去的内容的数据类型。

二进制文件只能以二进制形式打开(例如:图片,视频,音频等)

2.4.2二进制数据

一般二进制数据都是通过网络请求获取到,或者通过读取本地的二进制文件来取到。

将字符串转换成二进制:

bytes(字符串,编码方式)

字符串.encode(编码方式)

将二进制转换成字符串:

str(二进制数据,编码方式)

二进制数据.decode(编码方式)

以上编码方式一般都为utf-8

2.5文件上下文

with open(文件路径,打开方式,编码方式) as 文件对象:

​ 操作文件

文件操作完成后,会自动关闭


3.json

3.1json数据

满足json格式的数据就是json数据

json格式:一个json有且只有一个数据,这个数据必须满足是json支持的数据类型

json支持的数据类型:

数字(number) --包含所有的数字(整数和小数),如:3,-4,3.14,3e4

字符串(string) --只能用双引号引起来的字符集,字符也支持转义字符,编码字符,如"abc\n","123as","学习","\u4e00cv"

布尔(bool) --true/false,首字母都小写

数组(array) --相当于python中的列表,如['adc',123,true,[123,'123','asd']]

字典(dictionary) --相当于python中的字典,json字典中key值要求必须是字符串

空值 --null,相当于None

3.2使用json

解析json数据(获取到json数据后,将json中想要的东西解析出来) --做前端开发人员的工作

构造json数据:

在python中有一个内置库,专门负责json数据的处理:json库(import json)

  1. 将json数据转换为python:

json数据 python数据

number int/float

string str,可能会出现将双引号变单引号

bool bool,true->True,false ->False

array list

dictionary dict

空 null->None

json.loads(字符串,encoding='utf-8') --解析json数据,返回json对应的python数据

字符串要求:字符串中内容本身就是一个json数据(去掉引号后,本身就是一个json数据)

  1. python转json

python数据 json数据

int/float number

bool bool,True -> true,False-> false

str string,将单引号变为双引号

list/tuple array

dict dictionary

空 None->null

json.dumps(python数据) -->将python数据转换为对应的json数据字符串,结果是字符串。

  1. json文件操作

json.load(文件对象) --将文件对象中文件内容转换成python数据,文件内容必须是json数据

json.dump(python数据,文件对象) --将python数据转换成json字符串再写入指定文件中


4.应用

  1. 数据怎么本地化

数据保存在本地文件中一份

每次需要用到这个数据的时候,不是直接给值,而是从本地文件中读取他的值

数据修改完后,要将最新的数据保存在本地文件中

  1. 什么时候用到json文件

需要持久化的数据是字典,列表,元祖

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343