Python第十五课

异常

1.异常的处理

print(A)

#运行结果#
NameError: name 'A' is not defined
a=[]
try:
    for i in range(1,100):
        a.append(i)
        i+=2
except:
    print('这是我的解决方案')
else:
    print('代码运行无误,则执行此处')

#运行结果#
代码运行无误,则执行此处

2.异常对象

  • 不管有多少except, 只能执行第一个
try:
    print(a)
    1/0
except NameError:
    print('这是我的第一个解决方案')
except ZeroDivisionError:
    print('这是我的第二个解决方案')

#运行结果#
这是我的第一个解决方案
try:
    print(a)
    1/0
except Exception as b:
    print('这是我的第一个解决方案',' ', b,' ', type(b))

#运行结果#
这是我的第一个解决方案   name 'a' is not defined   <class 'NameError'>

3.异常的传播

def fun():
    1/0
def fun1():
    fun()

def fun2():
    fun1()
fun2()

#运行结果#
File "D:/PYTHON/异常的传播.py", line 20, in <module>
    fun2()
  File "D:/PYTHON/异常的传播.py", line 19, in fun2
    fun1()
  File "D:/PYTHON/异常的传播.py", line 16, in fun1
    fun()
  File "D:/PYTHON/异常的传播.py", line 14, in fun
    1/0
ZeroDivisionError: division by zero

文件

1.文件的打开

#找到文件
file_name=r'D:\help\practice.py'
#打开文件 open()
file_obj=open(file_name)

2.文件的读取

#practice.text内容为中文
file_name='D:\help\Tools\practice.text'

file_obj=open(file_name)
print(file_obj.read(-1)) #括号内的-1表示读取全部

#运行结果#
UnicodeDecodeError: 'gbk' codec can't decode byte 0x8c in position 14: illegal multibyte sequence
#文件内容为中文的编码方法:
file_name='D:\help\Tools\practice.text'

with open(file_name,encoding='utf-8') as f:
    print(f.read(-1))

#运行结果#
北冥有鱼,
其名为鲲。
鲲之大,
不知其几千里也。
file_name='D:\help\Tools\practice.text'

with open(file_name,encoding='utf-8') as f:
    # print(f.read(-1))
    print(f.readline())
    # print(f.readline())
    # print(f.readline())#readline()方法是用一次读一行
    # print(f.readline())
    print(f.readlines(7))#readlines()方法是根据字节,全部读取到列表内,内容读取完后,则不能再读取,这时打印会为空

#运行结果#

北冥有鱼,

['其名为鲲。\n', '鲲之大,\n']

3.文件的写入

  # w 模式是一个覆盖式写入 , 写入内容必须是字符串的数据类型
  # a 模式表示追加
file_name=r'D:\help\Tools\practice.text'

with open(file_name,'a',encoding='utf-8') as f:
    f.write('\n唐诗三百首')  #write()方法,写入必须是字符串的数据类型

#运行后文件内容#
北冥有鱼,
其名为鲲。
鲲之大,
不知其几千里也。
唐诗三百首

4.操作二进制文件

  • 图片文字音乐视频等都是二进制文件

file_name=r'D:\CloudMusic\Anne Sophie Versnaeyen,Gabriel Saban - Autumn Romance.mp3'

with open(file_name,'rb') as f:

    file_obj='123.mp3'
    with open(file_obj,'wb') as k:
        while True:
            content=f.read(-1)
            if not content:
                break
            k.write(content)

5.文件的关闭

  • 第一种关闭方式:
file_name=r'D:\help\Tools\practice.text'

file_obj=open(file_name,encoding='utf-8')
content=file_obj.read(-1)
# print(content)
file_obj.close()
print(file_obj.read(-1))

#运行结果#
ValueError: I/O operation on closed file.
  • 第二种关闭方式:with
  • with自带关闭效果
file_name=r'D:\help\Tools\practice.text'

try:
    with open(file_name,encoding='utf-8') as f:
        print(f.read(-1))
except FileNotFoundError:
    pass
print(f.read())

#运行结果#
北冥有鱼,
其名为鲲。
鲲之大,
不知其几千里也。
唐诗三百首
Traceback (most recent call last):
  File "D:/PYTHON/关闭文件.py", line 11, in <module>
    print(f.read())
ValueError: I/O operation on closed file.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值