异常与文件

Python异常、文件操作与CSV模块详解

目录

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 文件当中。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值