Python 自学(九) 之异常处理,文件及目录操作

目录

1. try ... except ... else ... finally  排列                P231

2. write, read, seek, readline, readlines 基本文件操作        P245

3. os模块 基本目录操作                P249

4. os.path 模块 复杂目录操作                        P250

5. os 模块  高级文件操作                P257

6. Exception 类

7. raise 语句                P231


1. try ... except ... else ... finally  排列                P231

try:

        #待测试的函数

except(必需,至少一个except)errorTypeA:(可选,不声明Type就是捕获所有error):

        #对 errorTypeA 的处理

except errorTypeB:

        #对 errorTypeB 的处理

......:

        #......

else:

        # 没有出现任何异常时,执行的操作

finally:

        # 不管有没有异常,都会执行的操作

我们试一下各种情况

正确分苹果: try...else...finally

错误分苹果: try...except...finally


2. write, read, seek, readline, readlines 基本文件操作        P245

似乎,只能以只写方式打开文件来写入,以只读方式打开文件来读取。。。 读写方式无法同时读写?

file1 = open('message.txt','w')       # 'a' 则会以追加方式打开

file1.close()                                    # open close 成对现

file1.write(str1)

file1.seek(0)

str2 = file1.read()    

str3 = file1.read(10)

line = file1.readline()    

msg = file1.readlines()                    # 返回值是字符串列表


3. os模块 基本目录操作                P249

os.getcwd()

os.listdir()

os.mkdir()

os.rmdir()

os.makedirs()

os.removedirs()

os.chdir()

os.walk()


4. os.path 模块 复杂目录操作                        P250

os.path.abspath()

os.path.exists()

os.path.basename()

os.path.dirname()


5. os 模块  高级文件操作                P257

文件权限操作

os.access()

os.rename()

os.chmod()

os.remove()

获取文件基本信息

fileinfo = os.stat()                                     # 返回一个文件状态对象,该对象包含大量属性


6. Exception 类

所有内置的非系统退出类异常都派生自Exception类。

所有用户自定义异常也应当派生自Exception类。

try:
    可能触发异常的语句
except (GPIOError, LookupError, ValueError) [as 变量1]:
    处理语句1
except KeyboardInterrupt [as 变量2]:
    处理语句2
except Exception  [as 变量3]:
    不是以上错误类型的处理语句(因为Exception 可接收所有异常!!)
else:
    未发生异常执行的语句
finally:
	无论是否发生异常都执行的语句

7. raise 语句                P231

raise 语句有如下三种常用的用法:

1. raise:单独一个 raise。该语句引发当前上下文中捕获的异常(比如在 except 块中),或默认引发 RuntimeError 异常。
2. raise 异常类名称:raise 后带一个异常类名称,表示引发执行类型的异常。
3. raise 异常类名称(描述信息):在引发指定类型的异常的同时,附带异常的描述信息

       try:
			gpio = GPIO(f'/dev/gpiochip{chip}', line, 'in')
			value = gpio.read()
			if value == True:
				print('HIGH (1)')
			else:
				print('LOW (0)')
			gpio.close()
		except (GPIOError, LookupError) as e:
			raise Exceptions(e)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值