2018-09-03day11-文件操作和异常捕获
2018-09-03 本文已影响0人
猫爱老鼠丶
一、文件操作
打开文件 -- 操作 -- 关闭文件
1.基本过程
2.open(路径,打开方式,encoding=编码方式)
a.路径:绝对路径(了解),相对路径:./相对路径,../,.../
b.打开方式:r,br/rb -- 读,w,rw/wr -- 写
注意:路径不存在的时候,读的方式打开会报错,写的方式打开会打开新建文件
c.设置编码:utf-8,gbk
注意:如果是以二进制的形式打开文件(br/rb,rw/wr),不能设置编码方式
3.文件的读和写
read()/readline() -- 读
write() -- 写
4.关闭文件
f.close() --- 关闭文件
5.打开文件和关闭文件的的简写方式(常用的)
# 读二进制文件(上传文件)
with open('./files/timg.jpg','rb') as f:
# bytes是python中内置的数据类型,用来表示二进制
content = f.read()
print(type(content))
print(content)
f.close()
# 将二进制数据写入文件(下载图片)
with open('./files/new.jpg','wb') as f:
f.write(content)
f.close()
二、json文件
json是没有特定格式的一种文本形式,它有自己的语法
json文件就是后缀是.json的文本文件
1.json格式对应的数据类型及其表现
a.每个json文件中只能存一个数据,这个数据的类型必须是以下类型中的一个
类型: 格式: 意义
对象(object): {"a":10,"b":[1,2]} 相当于字典
数组(array): [100,"abc",true,[1,2]] 相当于列表,里面的元素可以是任何类型
数字(number): 0,100,3.14,-200 包含整数和小数
字符串(string): "abc","hello jason" 相当于字符串
布尔 true/false 是(真)/否(假)
null: null 空值
2.python对json数据的支持
json ---> python
对象 字典(dict)
数组 列表(list)
数字 整数(int)和浮点数(float)
布尔/true,false 布尔(bool)/True,False
null None
json模块是python中内置的,专门用来处理json数据的一个模块
- load(json文件对象):以json的格式,获取文件中的内容。将内容转换成对应的python数据
- loads(json格式内容的字符串,编码方式):将json格式的字符串转换成python对应的数据
- dump(需要写入json文件中的python数据,json文件对象)
- dumps(需要转换成json格式字符串的python)
with open('./files/json1.json', 'r', encoding='utf-8') as f:
content = json.load(f)
print(content)
print(type(content))
print(content[3])
content1 = json.loads('{"a":100, "abc":true}', encoding='utf-8')
print(content1,type(content1))
3.python转json数据
with open('./files/new.json', 'w', encoding='utf-8') as f:
json.dump({'a':100, 'hn':200},f)
# json.dump((1,'a',True,3.14), f)
# 注意:集合不能转换成python数据
#json.dump({1,2,'a',True}, f)
# 将python数据,转换成json字符串
json_str = json.dumps([1,2,3,True,'abc'])
print(json_str,type(json_str))
三、异常捕获
a.形式1:捕获try后代码块里面的所有异常
try:
需要捕获异常的代码块(可能会出现异常的代码块)
except:
出现异常后执行的代码
执行过程:执行try后面的代码块,一旦遇到异常,就马上执行except后面的代码块。执行完后再执行其他的语句如果try里面的代码块没有出现异常,就不执行except后面的代码块。再执行其他的语句
b.形式2:
try:
需要捕获异常的代码块(可能会出现异常的代码块)
except (错误类型1,错误类型2):
出现异常后执行的代码
c.形式3:
try:
需要捕获异常的代码块(可能会出现异常的代码块)
except (错误类型1):
出现异常后执行的代码
except (错误类型2):
出现异常后执行的代码
d.形式4:
try:
pass
except:
出现异常后执行代码
finally:
不管有没有异常都会执行(就算崩溃了也会执行)
(在这儿做程序异常退出时的善后,一般做保存数据和进度的工作)