day12总结

文件操作

1,数据持久化(数据本地化)

保存在程序中的数据是保存在运行内存中的,当程序运行结束,内存会自定释放,数据也会消失;所以为了彻底保存数据必须得将数据通过文件存储到硬盘中。

程序中经常用来保存数据的文件:数据库文件(db,sqlite),json文件,plist文件,txt文件,png文件,jpg文件,gif文件等等,,,

2.操作文件(操作文件中的内容)

1)步骤:打开文件 -> 操作文件内容(读操作,写操作)->关闭文件

打开文件:

open(file, mode='r', encoding = None)

说明:
file: -> 字符串;文件在电脑中的地址(文件路径)
路径可以写绝对路径和相对路径
绝对路径:文件在电脑中的完整路径
相对路径:用./代表当前目录(指的是当前操作页面所属的目录)
注意:只有一个./可以省略,如果是../则不可以,它代表当前目录的上一目录,

mode: -> 字符串;文件的打开方式,决定打开文件后能够对文件做什么以及读写的数据类型
'r'/'rt': 以只读的方式打开文件,读出来的是字符串(是默认的,可以省略)
'rb'/'br': 以只读的方式打开文件,读出来的内容是二进制数据(bytes)
'w'/'wt'/'tw' : 以只写的方式打开文件,将字符串写入文件(会先清空原文件,在写入)
'wb'/'bw': 以只写大方式打开文件,将二进制写入文件
'a'/'at'/'ta': 以只写的方式打开文件;将字符串写入文件(不会清空文件,会追加内容在原文件后)
'ab'/'ba' : 以只写的方式打开文件将二进制写入文件,也是追加在后面。

encoding -- 字符串;设置文本文件的编码格式(只针对文本文件有效);一般使用'utf-8'
注意:1.同一个文件读和写的编码方式一样
2.针对文本文件的文本操作有效,所有带‘b’的打开方式都不能设置encoding

3.读写操作

1)读操作

文件对象.read() -- 获取整个文件的内容,以字符串或二进制的形式返回
文件对象.readline() -- 获取文本文件中一行的内容,以字符串或二进制的形式返回
文件对象.seek(0) -- 移动光标(游标)到文件的开头,读完文件或者写完文件后光标就会移动到最后,想要从头开始读,写就需要写这个语句

f = open('./test.txt,'r',encoding='utf-8')
j = f.read()
f.close()
2)写操作

对象.write(内容) -- 将文件‘内容’写入文件中

f = open('./test.txt,'w',encoding='utf-8')
f.write('abc')
f.close()

4.补充 with--open

打开文件在文件作用域中对文件进行操作,离开文件作用域文件自动关闭

语法:

with open('./test.txt,'r',enconding='utf-8') as 文件对象:

5.打开不存在的文件:

1)以读的方式去打开不存在的文件:程序会报错FileNotFoundError
2)以写的方式打开不存在的文件,不会出现异常并且创建一个空的文件。

6.二进制文件的读写

1)普通文本文件:可以使用带t或者带d的读写方式去打开
2)二进制数据文件:视频文件,音频文件,,,,,这些文件只能用带b的方式去打开

7.eval

将序列字符串转换成序列

str1 = '{1:'a',2:'b'}'
dict1 = eval(str1)
print(dict1)

8. JOSON

1)json是一种通用的数据格式;几乎所有的高级语言都支持将json数据转换成当前语句数据,也支持当前语句数据转换成json数据,一般数据接口提供的数据都是json格式的数据
2)json格式

json格式:a.一个json有且只能有一个数据,
b.这个数据必须是json支持的数据类型的数据

json支持的数据类型:
数字类型 - 包括所有的数字,例如:100,12.5,-3.1,3e3(科学计数法310*3)
字符串 - 用双引号引起来的字符集,例如:"abc","a12","123\nabc"
布尔值 - true和false两个值
数组 - 相当于python中的列表:[100,"你好",true,[1,2]]
字典 - 相当于python中的字典,key必须是字符串:{"1":"123","2":true,"3":100}
空值 - null;相当于python中的None,表示空和没有(一般用于字典中)

3)将json数据转换成python数据
a. 对应关系

json python
数字类型 int/float
字符串 str,双引号可能会变成单引号
布尔值 bool,true -- >可能会变成True,False
数组 list
字典 字典
空值 null -> None

b.转换方法(import json)-- json模块是python内置的模块,模块主要提供和json操作相关的函数

json模块中有一个'loads'可以将json格式的数据转换成python对应的数据
loads(字符串) -- 将json格式的字符串转换成python数据
注意:这儿字符串的内容必须是json数据
result = json.loads('"abc"')--里面只能有一个json数据

json.loads('') -- 转换成python数据,且里面不能是空串

res = requests.get('URL')
print(res) -- 在网页上请求得到的是字符串(json数据)
result = json.loads(res.text)   -- 将字符串转换成python数据字典
print(result)

for dict1 in result['data']:  -- 爬取格式
    print(dict1['name']

4)将python数据转换成json数据

a.转换关系
python    -->     json
int/float        数字
str              字符串,引号都会变成双引号
bool             True,False --> true,false
list,tuple       数组 ---------- 元组是不可变的列表(其他的序列不可以直接转,需转换后才行)
dict             字典
None             null
b.转换方法
dumps(数据) -- 将括号中的python转换成json格式的字符串
result = json.dumps([100,'abc',True,None])   -- python数据转换成json
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.数据持久化(数据本地化) 保存在程序中的数据是保存在运行内存中的,当程序运行结束,内存会自动释放,数据也会消失...
    举颗凤梨阅读 499评论 0 4
  • 1. 数据持久化(数据本地化) 保存在程序中的数据是保存在运行内存中的,当程序运行结束,内存会自动释放,数据也会消...
    酒煮灬核弹头阅读 314评论 0 1
  • 文件操作和异常处理 一、文件操作 1.数据持久化(数据本地化) 保存在程序中的数据是保存在运行内存中的,当程序运行...
    ______n___阅读 233评论 0 0
  • 工匠良辰阅读 929评论 0 0
  • “一念开心”,最开始是自己遇到事情,困顿无解,一句自嘲的话。没事念个三五遍,哄自己看开,没想到经历过时间的复利,竟...
    启发时刻阅读 322评论 0 0