美文网首页
2018-09-03day11-文件操作和异常捕获

2018-09-03day11-文件操作和异常捕获

作者: 猫爱老鼠丶 | 来源:发表于2018-09-03 18:45 被阅读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:
    不管有没有异常都会执行(就算崩溃了也会执行)
    (在这儿做程序异常退出时的善后,一般做保存数据和进度的工作)

相关文章

网友评论

      本文标题:2018-09-03day11-文件操作和异常捕获

      本文链接:https://www.haomeiwen.com/subject/wsriwftx.html