Python复习巩固——MOOC网课笔记(10)IO编程与异常

OS模块基础

  1. 获取当前操作系统信息
    os.name : 获取操作系统名(如 windows用字符串“nt”表示)

    os.sep :获取当前系统平台的路径分隔符。(windows用 \ 作为路径分隔符)

    os.getcwd():获取当前工作目录。
    (例如,os.getcwd() + os.seq + ‘data’ + os.seq + ‘data.txt’ 表示获取当前目录下的子文件夹data中的data.txt文件。)

    os.environ : 一个包含所有环境变量值的映射对象,在Python控制台下直接输入os.environ即可查看当前所有环境变量。
    (查看方式:os.environ[key] 或os.getenv(key)根据键名返回环境变量值)

    os.listdir(path = ‘.’) :获取指定路径下的所有文件和目录的名字。其中path参数是指定路径,默认值’.'表示当前路径。返回值是路径下所有文件和目录名字组成的列表。

  2. 目录创建和删除
    (1)创建目录:mkdir(path) 和 makedirs(path)
    参数path为要创建的目录。
    mkdir只能创建一个目录(不能创建子目录),而makedirs可以创建多重目录。
    不能创建已经存在的目录。

    (2)删除目录:os.rmfir(path) 和 os.removedirs(path)
    删除path参数路径的目录。
    后者可以删除多重目录,从最里面一层的目录开始往前删除,直到删光或者遇到一个不为空的目录。
    注意:所删除的目录必须为空目录。

  3. 路径
    (1)相对路径:相对于当前工作目录指定的路径。
    绝对路径:从最顶层目录开始的完整路径。

    (2)获取相对路径的绝对路径。
    方法 :os.path.abspath(path)
    Tip:编程时最好使用相对路径,方便不同机器上运行。

    (3)获取文件所在目录
    方法:os.path.dirname(path)
    作用:返回path中去除文件名后的路径,path参数是文件的路径。

    (4)获取文件名
    方法: os.path.basename(path)
    作用:返回path中的文件名。

    (5)同时获得目录与文件名
    方法:os.path.split(path)
    作用:获取一个(目录,文件名)格式的元组。
    Tip:若path不是文件路径而是目录路径,则获取的是(目录,最后一个目录)的元组。

    (6)分离文件路径和文件拓展名
    方法:os.path.splitext(path)
    作用:获取一个(没有文件扩展名的文件路径,扩展名)元组。

    (7)路径连接
    方法:os.path.join(path,*path)
    作用:用分隔符将所有参数连接起来,返回一个路径。

  4. 条件判断
    (1)os.path.isfie(path)
    作用:判断路径目标是否为文件。
    os.path.isdir(path)同理,判断是否为目录。

    (2) os.path.exists(path)
    作用:判断路径是否存在。

    (3)os.path.isabs(path)
    作用:判断是否为绝对路径。

文件操作

  1. 文件打开和关闭
    (1)文件打开、关闭
    方法 :open(filename,mode=‘r’)
    参数filename:要打开的文件路径。
    参数mode:文件打开方式。
    返回值:文件对象。
    关闭文件:文件对象.close()

    打开方式:

在这里插入图片描述 打开方式组合:

在这里插入图片描述

Tip:文件中有一个文件指针,指向当前要读写的位置。若打开方式中有’a’,则文件指针指向文件的末尾,否则指向文件开头。

(2)with语句
作用:防止忘记关闭文件,释放资源。
例子:with open(…) as file:

  1. 文件对象的write和read
    (1)f.write(str)
    作用:将字符串str写入文件对象f。
    返回值:写入文件的字符数。

    (2)f.read(n=-1)
    作用:从文件中读取数据并返回。
    参数n:要读取的字节数,默认-1表示全都读取。

  2. 文件对象的readline、readlines和seek
    (1)f.readline()
    作用:读取一行数据并返回。

    (2)f.readlines()
    作用:按行读取所有数据。
    返回值:列表
    Tip:可用list(f),返回结果相同。

    (3)f.seek(pos,whence = 0)
    作用:移动文件指针,实现随机读写。
    参数pos:要移动的字节数。
    参数whence : 参照位置,默认0表示参照位置为文件开头。1表示当前指针位置,2表示文件末尾。
    返回值:无。
    Tip:该方法主要用于二进制文件,对于文本文件只支持以文件开头作为参照位置。

  3. csv文件的读写
    (1)生成writer对象
    方法:csv.writer(csvfile)
    参数csvfile是一个具有write方法的对象。如果将open函数返回的文件对象传给csvfile,需要加上一个关键字参数newline=",

    (2)csv文件的写操作
    方法1: writer.writerow(row)
    参数row :要写入到csv文件中的一行数据。

    方法2:writerows(rows)
    参数rows:要写入csv文件中的多行数据。

    (3)生成reader对象
    方法:csv.reader(csvfile)
    参数csvfile:一个迭代器,可以像(1)中一样用open。
    返回值:reader对象,是个可迭代对象,用for循环可以按行读数据,每次遍历返回一个字符串组成的列表。

异常

  1. 定义:异常是指因程序运行时发生的错误而产生的信号。若程序没有对异常进行处理,程序会抛出该异常并停止程序运行。为了保证程序稳定运行,我们需要捕获可能发生的异常并对其进行处理。

  2. 分类:语法错误和逻辑错误。

  3. 常见逻辑错误
    在这里插入图片描述
    在这里插入图片描述

  4. 异常的处理(try except语句)
    (1)格式:
    try:
    要捕获的语句块
    except 异常类型1:
    处理语句
    except 异常类型2:
    处理语句
    ……
    (2)处理过程
    执行要捕获异常的语句块->发生异常,根据异常类型,执行匹配的处理语句->都不匹配,异常会传给更外层的try except语句->异常没有被任何的except语句块处理,则抛出,停止。

    (3)Tip:except后面的异常类型可以为1一个,多个(逗号隔开),或者0个(不写,表示捕获所有异常)

  5. 其它处理语句
    (1)else语句:可选,若try中的代码块没有发生异常,则结束后会执行else语句。
    (2)finally:无论是否try中的语句发生里异常,finally语句都会执行。
    (3)raise:写在try代码块中,可以人工产生异常。(例:if num==0 : raise ValueError(“输入数字不能为0!”)

  6. 断言
    格式: assert 布尔表达式
    作用:成立则继续执行,不成立则触发AssertionError异常。

  7. 自定义异常
    格式:以BaseExcetipn类作为父类创建一个子类。(略)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值