Python学习 -- 文件和异常

87 阅读3分钟

一、文件编码

编码技术就是翻译的规则,记录了如何将内容翻译成二进制,以及如何将二进制翻译回可识别的内容。

二、文件的读取

1 打开文件

使用 open()函数打开文件:
    语法:
        open(name, mode, encoding)
        name:目标文件名(可以包含文件所在的具体路径)
        mode:设置打开文件的模式(访问模式):只读、写入、追加等
        encoding:编码格式(一般使用utf-8)
    示例:
        f = open('python.txt', 'r', encodind="utf-8")
    "注意:"
        "encoding的顺序不是第三位,一次要使用关键字参数指定。"
    mode的常用三种基础访问模式:
        r:以只读方式打开文件。文件指针将会放在文件的开头,这是默认模式。
        w:打开文件用于写入。如果文件已存在则打开文件,并从头开始编辑,原有的内容将会被删除,如果文件不存在,会创建出一个新的文件。
        a:打开一个文件用于追加。如果文件已存在,新的内容会被写入到已有内容之后,如果文件不存在,会创建出一个新的文件。

2 读取文件

使用 read()函数读取文件内容:
    语法:
        文件对象.read(num)
        num 表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有数据。
        
使用 readlines()函数读取文件内容:
    语法:
        文件对象.readlines()
        redalines 可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。
        
使用 readline()函数读取文件内容:
    语法:
        文件对象.readline()  
        readline()方法一次读取文件中一行内容
        
使用 for循环方式读取文件内容:
    语法:
        for line in open("python.txt", "r"):
            print(line)

3 关闭文件

使用 close()方法关闭文件对象:
    语法:
        f = open("python.txt", "r")
        f.close()

with open()方法:
    语法:
        with open("python.txt", "r") as f:
            f.readlines()
    含义:
        通过with open方法对文件进行操作,可以在操作完后自动关闭文件,避免遗忘掉close()方法。

三、文件的写入

1 打开文件

以写的形式代开文件:
    f = open('python.txt', 'w')

2 文件写入

通过write()方法写入:
    f.write("hello world")

3 内容刷新

通过flush()方法刷新:
    f.flush()
    "在调用完write()方法写入内容后,实际并没有将内容真正的写入到文件中,而是会保存在程序的内存中,
    即缓存区中,只有通过flush()方法进行刷新后,内容才真正写入进文件。"

四、异常的捕获方法

1 捕获常规异常

基本语法:
    try:
        可能发生错误的代码
    except:
        如果出现异常执行的代码

2 捕获指定异常

示例:
    try:
        print(name)
    except NameError as e:
        print('name变量名称未定义错误')

3 捕获多个异常

示例:
    try:
        1/0
        print(name)
    except (NameError, ZeroDivisionError) as e:
        print('name变量名称未定义错误 或 0为除数错误')

4 捕获所有异常

示例:
    try:
        1/0
        print(name)
        ...
    except Exception as e:
        print('出现异常')

5 异常else

else表示的是如果没有异常时要执行的代码。
示例:
    try:
        print(1)
    except Exception as e:
        print(e)
    elseprint("没有异常,执行此处")

6 异常finally

finally表示的是无论是否异常都要执行的代码。
示例:
     try:
        f = open("python.txt", "r")
    except Exception as e:
        f = open("python.txt", "w")
    elseprint("没有异常")
    finally:
        f.close()
        print("有没有异常都要执行该部分")

五、异常的传递

异常具有传递性: