异常和文件

1.异常

  • 1.1异常的概念
    • 异常就是在程序运行过程中的一些错误。
    • 程序运行过程中的异常并不是为了停止程序,而是让我们编写代码来处理这些异常,可以使得程序更加友好和稳定。
  • 1.2异常的传播
    • 在函数中出现异常时,如果在函数中进行了异常的处理,则异常不会进行传播,如果异常没有处理,那么它就会向函数调用处传播,如果函数调用处进行了异常处理,则异常不会再传播,如果没有则继续向上层调用处传播,以此类推,直到最后程序的全局作用域,如果还没处理,那就程序终止,并显示异常信息。
    • 当异常出现后,所有的异常信息会保存再一个异常对象中,异常传播的过程,实际上是将异常对象抛给调用处。
  • 1.3异常处理的语法
try :  #可能出现异常的代码块
    代码块
except 异常类型:#根据异常类型处理异常
    代码块
except Exception as e:#处理所有异常,将异常信息存入变量e中
    代码块
else:   #没有异常时运行的代码
    代码块
finally:   #不管有无异常都运行的代码
    代码块
def fn():
    """
    演示异常处理
    """
    lst = [3, 7, 9, 10]
    try:
        r = lst[5]/0
    except IndexError:
        print('索引值超出了范围!!!')
    except Exception as e:
        print(f'出错了!!!{type(e)}:{e}。')
    else:
        print(f'r的结果为{r}。')
    finally:
        print('程序结束!!!')

if __name__ == '__main__':
    fn()
"""
运行结果:
索引值超出了范围!!!
程序结束!!!
"""

2.文件

  • 2.1文件的基本概念
    • 在这里文件就是指通过python程序对计算机各种文件进行增删改查的操作,也叫做I/O(Input/Output)。
    • 文件的操作步骤:先打开文件,然后对文件进行各种操作,最后关闭文件。
    • 文件会有一个返回值。返回值就是一个对象,这个对象就是指当前文件。
  • 2.2打开文件
    • open()函数,open(文件名或路径,打开方式,解码)。如果打开文件和你写的程序在同一文件夹下,直接使用文件名,如果不在请使用路径;打开方式默认'r'只读;'w'写,覆盖原来的内容,文件不存在就新建;'a'追加,在原文件后面追加内容,原文件不存在新建;其他方式copy一个表,总结下,'b'就是二进制,'+'就是可读可写,'r'指针在开头,'a'指针在结尾,'w'直接覆盖,'r'文件不存在报错,'w'、'a'文件不存在新建。解码默认为None,就是ASCII编码,一般用utf-8。
模式 描述
t 文本模式 (默认)。
x 写模式,新建一个文件,如果该文件已存在则会报错。
b 二进制模式。
+ 打开一个文件进行更新(可读可写)。
U 通用换行模式(不推荐)。
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
python读取文件的几种模式
  • 2.3 关闭文件
    • 用close()方法关闭文件。一般在操作完文件后就要关闭文件。
    • with-as语句,自带关闭功能
  • 2.4 读取文件
    • 通过read()方法来读取
    • 读取两种文件格式:纯文本;二进制文件。
    • read()方法有一个参数,默认为-1全部读取,设置整数,可以读取设置的字符数。
    • readline()方法,主要用于一行一样读取文件;readlines()方法,把文件所有内容按行读取到一个列表中。
f = open('python.txt',encoding='utf-8')
print(f.read())
f.close()
file_name = 'python.txt'
try:
    with open(file_name,'r+',encoding='utf-8') as f:
        while True:
            r = f.read(20)
            if r == '':
                break
            print(r,end='')
except FileNotFoundError:
    print(f'文件不存在,请检查路径下有{file_name}文件!!!')

  • 2.5 写文件
    • 用write()方法来写文件,可以多次使用,每次返回写入字符数量。
    • 需要在open()时设置可写操作,加'+'、'w'、'a'、'x'。
  • 2.6 二进制文件的读写
    • 二进制文件要用'b'这个参数。
with open(file_name,'rb') as obj:
  代码块
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。