异常与文件

目录

1.异常

1.1.概念

1.2.常见异常

1.3.异常处理方式

1.3.1.try except

1.3.2.try except else

1.3.3.try except else finally

2.文件

2.1.文件分类

ps:python 程序的数据保存在哪里?

2.2.常见的文件类型

2.3.python 操作文件的函数

2.3.1.读取文件

2.3.2.写入文件

ps:with 关键字

3.csv 模块

3.1.csv 文件

3.2.读取文件

3.3.写入文件


1.异常

1.1.概念

在编程中,异常( Exception )是指程序在运行过程中遇到的错误或异常情况。当程序出现异常时,它会中断当前的正常执行流程,并跳转到异常处理机制中,以便进行错误处理、异常处理或程序终止等操作。

1.2.常见异常

  • SyntaxError :语法错误,通常是由于代码书写格式不正确导致的。
  • NameError :名称错误,通常是由于变量或函数名未定义或拼写错误导致的。
  • TypeError :类型错误,通常是由于不符合操作要求的数据类型导致的。
  • ValueError :值错误,通常是由于传递给函数的参数值不合法导致的。
  • FileNotFoundError :文件不存在错误,通常是由于读取或操作不存在的文件导致的。
  • IndexError :索引错误,通常是由于访问序列(列表、元组等)时使用了无效的索引值导致的。
  • KeyError :键错误,通常是由于在字典中访问不存在的键导致的。
  • ZeroDivisionError :除零错误,通常是由于除法运算中除数为零导致的。

1.3.异常处理方式

1.3.1.try except

# input_util 异常优化
import re

# 封装 2 个函数

# 输入任意正确范围的整数
# 参数:提示语句,不定长参数(约束范围)
# 返回值:需要 

# 传范围
def fun2(n: float, *args: float | int) -> float | int:
    if len(args) == 0:
        return n
    elif len(args) == 1:
        if n >= args[0]:
            return n
        else:
            print(f'请输入大于等于{args[0]}的数字')
    else:
        if args[0] <= n <= args[1]:
            return n
        else:
            print(f'请输入{args[0]} - {args[1]}的数字')


def input_int(msg: str = '请输入一个整数:', *args: int) -> int:
    while 1:
        try:
            n = int(input(msg))
            result = fun2(n, *args)
            if result is not None:
                return n
        except:
            print('输入的不是整数')


# 输入任意正确范围的小数
def input_float(msg: str = '请输入一个小数:', *args: float) -> float:
    while 1:
        try:
            n = float(input(msg))
            result = fun2(n, *args)
            if result is not None:
                return n
        except:
            print('输入的不是小数')

1.3.2.try except else

1.3.3.try except else finally

2.文件

把数据永久地保存下来。

2.1.文件分类

ps:python 程序的数据保存在哪里?

  • 程序在执行的过程中,数据是保存在内存当中。
  • 也就说程序结束数据消失【因为当程序结束之后 python 、系统会回收我们使用过的内存】。
  • 问题:我们数据没办法永久保存。

电脑三大件:

  • CPU:提供算力
  • GPU:提供图形算力
  • 内存:算力跑在内存

2.2.常见的文件类型

  • 文本文件 txt
  • 结构化 Excel 文件
  • 结构化 csv 文件(大量数据打开时,excel会卡,csv不卡)
  • 结构化 SQL 数据表

2.3.python 操作文件的函数

newline 控制换行符是 windows 会用,mac 不会用到。

文件路径分为:

  • 相对路径:(path_name = './python基础/2024-11-13模块&异常&文件/data/input_util.py')(./ 可加可不加)
  • 绝对路径:根目录 / 开始(path_name = '/Users/wangruonan/Documents/AICode/SF130/python基础/2024-11-13模块&异常&文件/data/input_util.py')

2.3.1.读取文件

# 读取文件

# 1.找到文件路径
path_name = './python基础/2024-11-13模块&异常&文件/data/input_util.py' # 相对路径

# 2.通过 open 函数打开文件
try:
    file = open(path_name)
    print(file)
    result = file.read()
    print(result)
except:
    print('加载失败...')

import time
# 读取文件

# 1.找到文件路径
path_name = './python基础/2024-11-13模块&异常&文件/data/input_util.py' # 相对路径

# 2.通过 open 函数打开文件
try:
    file = open(path_name, encoding = 'utf-8')
    while 1:
        result = file.readline() 
        if result:
            print(result, end = '')
            time.sleep(0.5)
        else:
            break
except:
    print('加载失败...')

一般多使用

2.3.2.写入文件

ps:with 关键字

with关键字用于创建一个上下文管理器,它能够确保资源在使用后被正确地清理和释放。

优点:

  • 简洁性:使用with语句可以使代码更加简洁,避免了手动管理资源时可能出现的忘记关闭资源的错误。
  • 可靠性:无论在with语句块中是否发生异常,资源都会被正确地清理和释放,提高了程序的可靠性。

3.csv 模块

csv 模块用于处理逗号分隔值文件。

3.1.csv 文件

写入文件.ipynb:

3.2.读取文件

先把 open 函数读取文件的对象转为 csv 读取文件对象。

通过循环读取 csv 文件当中所有的内容。

3.3.写入文件

先把 open 函数写入文件的对象转为 csv 写入文件对象。

通过循环写入数据到 csv 文件当中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值