文件与异常及其相关函数(os模块)

os模块相关函数及其用法&文件可用相关函数:

os.getcwd()获取当前工作目录
os.sep查看分隔符(Windows:"/",Linux:"\\")
os.name查看当前操作系统的名字(Windows:nt,Linux:posix)
os.environ([key])获取环境变量值
os.mkdir(path)创建目录(只能创建最后一个目录,前面的目录必须都存在)
os.mkdirs(path)根据指定路径创建目录,可以将不存在的目录依次创建(若目录存在则会报错)
os.rmdir(path)只用于删除空目录
os.listdir(path='')获取指定路径下的所有文件和目录的名字(path:路径,默认为'.':当前目录)
os.removedirs(path)只用于删除空目录,从指定路径的最后一个目录逐层向前删除(用于多层空目录·)
os.path.abspath(path)获取指定相对路径path的绝对路径
os.path.dirname(path)返回path中去除文件名后的路径(文件所在目录路径)
os.path.basename(path)返回path中的文件名
os.path.split(path)将指定路径分解成路径名和目录/文件名两部分(若指定路径中不包含文件名,则会将指定路径分成两部分:最后一个目录名和由前面所有目录组成的路径名)路径
os.path.splitext(path)将指定路径分解成一个元组(root,ext)(ext:文件扩展名,root是扩展名前面的内容
os.path.join(path,*paths)各参数用系统路径分隔符(os.sep)连接得到的结果返回
os.path.isfile(path)判断path指定的目标是否是文件(返回值为布尔类型)
os.path.isdir(path)判断path指定的目标是否是目录(返回值为布尔类型)
os.path.exists(path)判断path指定的路径是否存在(返回值为布尔类型)
os.path.isabs(path)判断path指定的路径是否为绝对路径(返回值为布尔类型)

文件相关可用函数:

f.closed返回布尔类型,判断文件是否关闭,关闭返回True
f.write()返回值为写入到文件中的字符数(包括'\n')
with语句打开文件可让系统自动关闭文件
文件打开方式:a文件指针指向文件尾(追加)
文件打开方式:w会清空当前文件(写入)

异常处理

1.基本格式

"""
try:
    <语句块1>
expect[异常类型1]:
    <异常类型1的处理语句块>
expect[异常类型2]:
    <异常类型2的处理语句块>
...
expect[异常类型N]:
    <异常类型N的处理语句块>
else:
    <没有捕获异常执行的语句>
finally:
    <无论是否有异常都执行的语句>
"""

>执行try子句的语句块,如果没有异常发生,则except子句不被执行

>若有异常发生,则根据异常类型匹配每一个except关键字后面的异常名,并执行匹配的那个子句的处理语句块

>若异常与所有的except子句都不匹配,则传递给更外层的try except语句

>若异常无法被任何except子句处理,则程序抛出异常并停止运行

>except子句后面的异常类型,既可以是单个异常类型(“except ValueError:”)也可以是由多个异常类型组成的元组(“except (TypeError,ZeroDivisioError):”)还可以为空,即表示捕获所有异常

>直接使用raise抛出异常,然后用except接收异常

for i in range(2):  # 循环2次try:
    try:
        num = int(input('请输入一个数字:'))
        if num == 0:
            raise ValueError('输入数字不能为0!')
        print(10 / num)
    except ValueError as e:
        print('值错误:', e)

其中e接收抛出异常所携带的信息(输入数字不能为0!)

>断言(assert)使用assert可以判断一个条件是否成立,如果成立则继续执行后面的语句;如果不成立则会引发AssertionError异常

for i in range(2):  # 循环2次try:
    try:
        num = int(input('请输入一个数字︰'))
        assert num != 0
        print(10 / num)
    except AssertionError:
        print('断言失败!')

>自定义异常:(以BaseException为父类创建一个子类,需要定义__init__构造方法以及__str__方法输出报错信息)

class FileNameError(Exception):
    def __init__(self, err="仅支持jpg/png/jpeg格式"):
        self.err = err

    def __str__(self):
        return self.err


if __name__ == '__main__':
    file_name = input("请输入上传文件标识:")
    try:
        if file_name.split(".")[-1] in ['jpg', 'png', 'jpeg']:
            print("上传成功")
        else:
            raise FileNameError
    except Exception as err:
        print(err)

tips:

"""
磁盘上存储的内容,以二进制或ASCII码的形式存储
ASCII码
GBK(GB2312升级版)
GB2312(针对中文的编码方式)
Unicode(全球统一编码方式)
UTF-8(Unicode升级版)
>推荐书写方式:
    with open("文件实验.txt", "r+") as fp:
        fp.write("54687566+4+6")
        print(fp.read())
>路径书写
    ①在绝对路径前添加字符r
    ②采用反斜杠(\\)的方式书写路径
    ③采用左斜杠(/)
>去除空行:strip()"txt默认末尾设置\n"
>文件读取:
    read():从头读到尾,指针放到最后
    readline():读取一行,返回值为str
    readlines():读取全部,返回值为字符串列表(占用中间缓存,不推荐)
>文件写入:
    writelines():传入的是字符串列表
>seek(右移的字节数,[0:文件头,1:当前位置(仅支持二进制文件),2:最后(仅支持二进制文件)])设置指针位置
>tell 获取当前指针位置
>>异常处理(所有异常类的父类:BaseException,语言异常类的父类:Exception)
    Ctrl+C 终止执行(KeyboardInterrupt)
>使用assert【断言:assert 逻辑表达式[,异常信息]】可以判断一个条件是否成立,如果成立则继续执行后面的语句;如果不成立则会引发AssertionError异常
>raise抛出异常
    raise 异常类的类对象
"""

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值