• Python进阶复习-文件与异常


    文件打开

    文件路径

    • 完整路径
    with open("E:\hello.txt", "r", encoding="UTF-8") as file:
        content = file.read()  
        print(content)
    
    • 1
    • 2
    • 3

    打开模式

    1. ‘r’: 只读模式。打开文件后只能读取文件的内容,不能修改文件。如果文件不存在,抛出 FileNotFoundError 异常。
    2. ‘w’: 写入模式。打开文件后只能向文件中写入内容,如果文件存在,则会覆盖原有内容。如果文件不存在,则会创建一个新文件。如果以文本模式打开文件,则会自动将换行符 ‘\n’ 转换为操作系统的换行符。如果文件已经存在,则打开文件时截断文件为零长度,相当于删除文件中所有内容。
    3. ‘a’: 追加模式。打开文件后只能向文件中追加内容,不能修改文件。如果文件不存在,则会创建一个新文件。
    4. ‘x’: 独占创建模式。用于创建新文件,如果文件已经存在,会抛出 FileExistsError 异常。
    5. ‘b’: 二进制模式。打开文件时,以二进制模式处理文件内容,适用于非文本文件,如图片、视频等。 不单独使用。不需要指定encoding模式。
    6. ‘t’: 文本模式。打开文件时,以文本模式处理文件内容,适用于文本文件。 一般省略不写。
    7. ‘+’: 读写模式。打开文件后既可以读取文件内容,也可以向文件中写入内容。

    这些模式可以组合使用,例如 ‘rb’ 表示以二进制模式读取文件,‘w+’ 表示以读写模式打开文件。

    字符编码

    1. ASCII:用于英文字符的编码,包含128个字符。
    2. Unicode:通用的字符编码方式,包含世界上所有语言的字符,常用于处理多语言文本。
    3. UTF-8:一种可变长字符编码方式,支持Unicode字符集,广泛应用于互联网和编程中。包含全世界所有国家需要的字符。
    4. GBK:用于中文字符的编码,包含简体中文和繁体中文字符。
    5. BIG5:用于繁体中文字符的编码。

    文件读取

    逐行读取

    with open("E:\hello.txt", "r", encoding="UTF-8") as file:
        for i in range(3):
            print(file.readline())  
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    读取所有行

    with open("E:\hello.txt", "r", encoding="UTF-8") as file:
        text=file.readlines()
        print(text)
    
    • 1
    • 2
    • 3
    ['hello world\n', 'this is a file\n', 'for my study']
    
    • 1

    文件写入

    • "w"模式
    • "a"模式
    • file.writelines()函数

    既读又写

    • "r+"模式:文件名不存在则报错。写之前需要人为把指针移到末尾再开始写。
    with open("E:\hello.txt", "r+", encoding="UTF-8") as f:
    #     for line in f:
    #         print(line)   # 全部读一遍后,指针到达结尾
        f.seek(0,2)         # 或者可以将指针移到末尾f.seek(偏移字节数,位置(0:开始;1:当前位置;2:结尾))
        text = ["第四行,\n", "第五行\n"]
        f.writelines(text)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • "w+"模式:文件不存在会创建新文件。文件存在,立刻清空原内容。读取前记得需要人为把指针移到最开始的位置。
    with open("E:\hello.txt", "w+", encoding="UTF-8") as f:
        text = ["新的第一行\n", "新的第二行\n"]  # 清空原内容
        f.writelines(text)                             # 写入新内容,指针在最后
        f.seek(0,0)            # 指针移到开始
        print(f.read())        # 读取内容
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • "a+"模式:文件不存在会创建新文件。文件存在,不会清空原内容。读取前记得需要人为把指针移到最开始的位置。
    with open("E:\hello.txt", "a+", encoding="UTF-8") as f:
        text = ["新的第三行\n", "新的第四行\n"]  
        f.writelines(text)                             # 指针在最后,追加新内容, 
        f.seek(0,0)            # 指针移到开始
        print(f.read())        # 读取内容
    
    • 1
    • 2
    • 3
    • 4
    • 5

    两种数据存储结构

    csv文件

    • 由逗号将数据分开的字符序列,可以由excel打开

    json文件

    • 存储字典类型的数据
    • dump()写入
    • load()读取

    程序异常

    Exception万能捕捉

    ls = []
    d = {"name": "mybaby"}
    try:
        y = m
    except Exception as e:    # 虽不能获得错误具体类型,但可以获得错误的值
        print(e)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    Intel酷睿和AMD锐龙
    pymysql简介以及安装
    嵌入式Linux应用开发-基础知识-第十九章驱动程序基石①
    基于Qt QTreeView|QTreeWidget控件使用简单版
    第6周 .NET
    2023年电工(初级)证考试题库及电工(初级)试题解析
    科技论文写作
    苹果系统_安装matplotlib_&_pygame,以pycharm导入模块
    python查找算法_顺序查找
    SQL Server - 使用 Merge 语句实现表数据之间的对比同步
  • 原文地址:https://blog.csdn.net/weixin_45880844/article/details/132953134