zoukankan      html  css  js  c++  java
  • Python 基础入门 8 异常处理及文件处理

    """
    异常处理:当程序某些原因出错,程序忽略错误并向下执行,其格式如下
    try:
    语句
    except [错误码1 as e]:
    语句
    except [错误码2 as e]: #若没有错误码, except的作用是只要try内的语句出错,便执行except语句
    语句
    [else: #当try内语句出错且以上的except语句不执行时执行
    语句
    ]或者
    [finally: #不管try里的语句是否出错都会执行
    语句
    ]
    BaseException 一个异常类,里面包含所有的错误
    异常处理可以跨多行处理
    """
    try:
    print(1/0)
    except ZeroDivisionError as e:
    print("出现了错误")
    else:
    print("没有对应的错误码")


    """
    断言:assert (判断出错的表达式),str
    相当于简单的异常处理,执行到错误代码时,控制台会报错,但会打印str
    """
    def func(num,div):
    assert (div != 0) , "div不能为0"
    print(num / div)

    func(3,0)


    #file 文件处理
    """
    写文件,过程:
    1.打开文件
    变量 = open(path,flag[,encoding][,error]) 注意:如果用二级制格式(wb,rb)打开文件,就没有编码这说法
    path:要打开文件的路径
    flag:打开文件的方式,有如下
    r 以只读的方式打开文件,文件的描述符放在文件开头
    rb 以只读的方式以及二级制格式打开一个文件,文件的描述符放在文件开头
    r+ 以读写的方式打开文件,文件的描述符放在文件开头
    w 以写入的方式打开文件,文件的描述符放在文件开头,如果这个文件存在并且不是空内容,则写入时会覆盖内容;如果文件不存在,则创建一个文件
    wb 以写入的方式以及二级制格式打开一个文件,文件的描述符放在文件开头,如果这个文件存在并且不是空内容,则写入时会覆盖内容;如果文件不存在,则创建一个文件
    w+ 以读写的方式打开文件,文件的描述符放在文件开头,如果这个文件存在并且不是空内容,则写入时会覆盖内容;如果文件不存在,则创建一个文件
    a 以写的方式打开文件,如果文件存在,则文件描述符放在末尾
    a+ 以读写的方式打开文件,如果文件存在,则文件描述符放在末尾
    encoding:编码方式 我们一般用的时utf-8以及GDK,默认是GDK,如是用什么编码写入文件,就需要用什么编码打开文件
    errors:错误处理 ignore 忽略错误
    2.文件操作
    #读文件 注意:若是以二进制格式打开的文件,读取内容需要解码
    变量.read([int]) 读取前int个字符,并将描述符移动int下(字符包括转移字符),默认是文件的总字符数. 不适用读取大文件
    变量.readline([int]) 读取一行前的int个字符,并将描述符移动int下(若int超过该行读取字符数,返回起读位到该行的最后一个字符(包括转义字符))
    变量.readlines() 读取文件所有的行数并以list形式返回
    变量.readlines([int])

    #写文件 注意:若是以二进制格式打开的文件,写入内容要将str编码
    变量.write(str) 将str写入缓冲区,等文件关闭后或是等缓冲区满了后写入文件中

    #其他
    变量.flush() 刷新缓冲区,作用立即将缓冲区的数据写入文件中
    变量.seek(int) 将描述符移动到指定int的位置,若int大于整个文件的总字符数,相当于描述符放到了结尾,读不出内容
    3.关闭文件
    变量.close()

    简易打开关闭文件写法格式如下:
    with open(part,flag,encoding,errors) as 变量:
    文件读写语句/语句块
    """

    path= r"D:programmePythonfile est.txt"
    path1 = r"D:programmePythonfile est1.txt"
    try:
    w =open(path,"r")
    # print(w.read(10))
    # print(w.readline(10))
    # print(w.readline())
    print(w.readlines())
    finally:
    w.close()
    print("====================================")
    with open(path,"r") as f:
    f.seek(1000)
    print("**"+f.read(10)+"**")
    # print(f.readline(10))

    with open(path1,"w") as file1:
    file1.write("I am a good man")

    """
    文件数据持久性模块
    作用:将list,tuple,dict,set等数据以二进制的形式读出或者写入文件
    要导入pickle包
    pickle.dump(obj,文件对象) 将obj以二进制的形式写入文件
    pickle.load(文件对象) 以二进制的形式进行读取并返回对应的obj数据类型
    pickle.
    """
    import pickle
    myList =[1,"2",[1,3,4],("1","2","3"),{"key":"value"}]
    path1 = r"D:programmePythonfile est2.txt"
    try:
    file1 = open(path1,"wb")
    pickle.dump(myList,file1)
    finally:
    file1.close()

    with open(path1,"rb") as file1:
    print(pickle.load(file1))
  • 相关阅读:
    3.无重复字符的最长字串
    k-近邻算法(KNN)
    决策树
    解决anaconda与pycharm冲突导致import无法使用
    2.两数相加
    1.两数之和
    数学建模第七章 数理统计
    数学建模第六章 微分方程建模
    Web(4)servlet
    阿里云卸载自带的JDK,安装JDK完成相关配置
  • 原文地址:https://www.cnblogs.com/hjlin/p/10636700.html
Copyright © 2011-2022 走看看