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

2018-09-03 day12文件操作与异常捕获

作者: 不忘初心_c590 | 来源:发表于2018-09-03 19:23 被阅读0次

    1.复习

    1.1:容器类型:字典、列表、元祖和集合

    1.1.1列表(list)

    • a.有序:(可以通过下标取获取元素)、可变(增删改)、列表中的元素可以是
      可以是任何数据类型的数据
    • b.列表的相关操作:增删改查
    • C.列表的相干运算:+ , * ,in和not in ,len()
    • d相关方法

    1.1.2字典(dict):

    可变的(增删改)、key:唯一的,不可变的值value:无要求,任何数据类型都可以

    • a.相关操作:增删改查
    • b.相关运算:in 和 not in , len()
    • c. 字典d的相关运算

    1.1.3元祖(tuple):

    有序,不可变,元素可以是任何类型

    • a.查和列表一样

    • b.只有一个元素的元祖:(12,)

    • c.获取元祖的元素:x,y=(100,200)==>x,y=100,200

    • d.函数 a,b=b,a

    1.1.3.集合(set)

    • 无序的,可变的,元素是不可变的,
    • 支持数学的集合运算(包含,交集,并集,查集,补集)文档

    1.2函数

    • 1函数的声明(格式和步骤)--函数声明的时候不会执行函数体
    def 函数名(参数列表):
        函数的说明
        函数体
    
    • 2函数的调用(格式和调用过程)

    • 函数名()

    • 变量()

    • 列表下标

    • 字典[key]

    • 3参数相关:位置参数、关键字参数、参数的默认值、不定长参数

    • 4返回值:a.执行到return,结算函数,返回return后面的
      返回值

    • 5匿名函数:格式

    • 6递归函数

    • 7函数作为变量使用:申明函数的时候实际是在分明一个类型是function的变量


    2. 文件操作

    2.1 基本过程

    • 1打开文件 - 操作 - 关闭文件

    • 2.open(路径,打开方式,encoding=编码方式)

      a.绝对路径(了解,从来不使用)

      b.相对路径

      c. 打开方式:r,br--读 w,wb,a---读

           在打开文件时,如果指定的路径不存在时,以的方式打开会报错,以写的方式打开表示新建一个文件

    d.**设置编码:utf-8,gbk**
    

    注意:如果是以二进制的方式(rb、wb)单开文件是,就不能设置
    编码方式

    2.2文件的读和写

    • read()/readline()--读(位置会记忆) 打开的是一个文件对象

    • write() ---写(会覆盖原来的内容,也可以接着下,a)
      4.关闭文件
      如果不关闭,有可能会出现会有问题

    2.3打开文件和关闭文件的简写

    • with open(路径,打开方式,encoding=编码方式)

      以这种方式打开,文件操作完成后,会自动关闭

    with open('./wl.png','rb') as ff:
        content=ff.read()
        #bytes是python中内置的数据类型,用来表示二进制数据
        print(content,type(content))
        #将数据写入文件(下载图片)
    
    with open('./venv/w2.png','wb') as f:
        #wb(将二进制写入文件)下载图片
        f.write(content)
    
    

    3.json文件

    • json是有特定格式的格式的一种文本形式,它有自己的语法

    • json文件就是后缀名为 .json的文本文件

    3.1 json格式对应的数据类型及其表现

    素数 格式 意义
    对象(object) {键值对} 相当于字典
    数组(array) [元素] 元素是任何数据类型 相当于列表
    数字(number) 100 、0、0.2 包含整数和小数
    字符串(string) "abc"(只能双引号) 就是字符串
    布尔 trun、false(只能小写 是/否
    null null 空值
    • 注意:
    • 一个json文件中只能存一个数据,这个数据类型必须是以下7种数据类型中的一个
    • import json:json模块是python中内置的,专门处理json文件的一个模块

    3.2 json转python

    json Python
    对象 字典
    数组 列表
    数字 整数和浮点数
    布尔(tru/false) boll(True/false)
    null None

    1.json.load(json文件对象):以json的格式,获取文件的内容,然后转换成相应的python数据

    with open('./json2.json','r',encoding='utf-8') as f:    #以读的方式打开一个json文件
        content=json.load(f)   #读取json文件中的内容,转化成python格式并赋值给变量content
        print(content)
    

    2.json.loads(json格式内容的字符串,编码方式):将json格式的字符串转换成python对应的数据

    content1=json.loads('"qwerty"',encoding='utf-8')    #将json格式的字符串"qwerty"转换正python格式并赋值给content1
    print(content1,type(content1))
    
    • 注意:
      json格式的字符串必须是双引号 " "
      json格式的true/false,必须是小写

    3.3 python转json

    python json
    字典 对象
    列表、元祖 数组
    整数、浮点数 数字
    布尔(True?False) true/false
    字符串 字符串(双引号)
    None null
    • 1.dump(需要写入json中的python数据,json文件对象) ---写操作
    with open('./new.json','w',encoding='utf-8') as f:
        json.dump((1,2,3,4,123,1233),f)
    
    • 2.dumps(需要转换成json格式字符串的python数据)---单纯转换,将python数据转换成json格式
    content2=json.dumps('123,12,87,887')
    print(content2,type(content2))
    

    注意:
    python中的集合数据不能转换成json数据

    4.异常捕获

    4.1什么情况用异常捕获...

    a.输入两个数,求这两个数的商是多少

    num1=float(input('除数'))
    num2=float(input('被除数'))
    print(num1/num2)
    

    用户输入除数是 用户输了个 20a,就会报错,这个时候我们不希望程序崩溃,而是输出提示

    b.打开一个不存在的文件,不希望程序崩溃,只是读出的内容为空

    with open('./text11111.json','r')as f:
        content=json.load()
    

    总结:

    • 程序出现某种异常,但是不想因为这个异常 而让这个程序崩溃,带来不好的用户体验,这个时候就可以使用异常捕获机制。

    2.怎么捕获异常

    • 形式1:捕获try后面代码块里面的所有异常(用的并不多)
    try:
        需要捕获的异常代码块(可能会出现异常的代码块)
    except:
        出现异常后的执行代码
    

           执行过程,一次执行try后面的代码块,一旦遇到异常就马上执行except后,后面的代码块,执行完之后再执行其他的语句;如果try里面的代码块没有出现异常就不执行except后面的代码块,而是直接执行其他语句

    • 形式2:
    try:
        需要捕获的异常代码块(可能会出现异常的代码块)
    except:(错误类型2,错误类型2)    #只要这两种错误类型哪一个出现都会执行except后面的代码
        出现异常后的执行代码
    
    • 形式3:
    try:
        需要捕获异常的代码块(可能会出现异常)
    except 错误类型1:
        执行语句块1
    except 错误类型2:
        执行语句块2
    except 错误类型3:
        执行语句块3
    
    • 形式4
    try:
        需要捕获异常的代码块(可能会出现异常)
    except 错误类型1:
        执行语句块1
    finally:
        不管有没有异常,就算前面已经崩溃了也会执行
        (在这做程序异常退出时的善后,一般做保存数据和进度的工作)
    

    相关文章

      网友评论

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

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