Python基础15 - 异常、文件操作

本文介绍了Python中的异常处理机制,包括try、except、finally及else子句的使用,并详细讲解了文件操作的方法,如文件的打开、读取、关闭及使用with语句自动管理文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

十、生成器、迭代器(点击跳转)

十一、异常

在程序运行中,避免不了会出现错误(异常)

如果不处理函数中引发的异常,它将向上传播到调用函数的地方
如果在哪里也未得到处理,异常将继续传播,直至到达全局作用域
如果全局作用域中也没有异常处理的程序,程序将终止,之后的代码就不会执行了

1、异常处理

1.1、try 语句
语句1try # (可能出现错误的语句)
	代码块
except: # (出现错误后执行的语句)
	代码块
finally: # (无论是否出现错误都执行该语句)
	代码块
else: # (没有出现错误执行的语句)
	代码块
1.2、except 子句

except finally是 try的代码块出现异常后执行 except 的代码块
如果 except 后面异常类型则会捕获这类型异常错误
如果 except 后面没有异常类型则默认捕获所有异常错误

示例1try:
    print(hello,world)
except:
    print('程序出现错误')

>>  程序出现错误

示例2try:
    print(helloworld)
except NameError as c:
    print('程序出现错误,错误代码:',c)

>> 程序出现错误,错误代码: name 'helloworld' is not defined
1.2、finally 子句

finally 子句无论try的代码块是否出现错误都会执行 finally的代码块

示例1try:
    print(helloworld)
finally:
    print('try执行结束')

>> try执行结束
>> NameError: name 'helloworld' is not defined

示例2try:
    print(helloworld)
finally:
    print('try执行结束')

>> hello,world
>> try执行结束
1.3、else 子句

else子句是在 try 执行后没有错误再执行else的代码块

示例1try:
    print('try开始执行')
except:
    print('try出现错误')
else:
    print('try执行结束')

>> try开始执行
>> try执行完毕

十二、文件

  • 文件的路径

1、如果目标文件和当前文件在同一目录下,则直接使用同文件名

‘123.txt’

2、如果目标文件与当前文件不在同一目录下则需要路径 + 文件名

‘C:\Users\Desktop\123.txt’

1、文件的操作

1.1、打开文件
  • open()

可以用 open() 来打开文件

示例1:
wj = open('123.txt')
print(wj)

>> <_io.TextIOWrapper name='123.txt' mode='r' encoding='cp936'>

这种方法打开的文件是需要关闭的

1.2、读取文件
  • read()

read() 读取文件的内容,将读取到的内容作为字符串返回

示例1# 假设123.txt内容为 hello world
wj = open('123.txt')
dq = wj.read()
print(dq)

>> hello world
1.3、关闭文件
  • close()

文件读取完成后还需要关闭文件,否则文件会一直占用内存;
可以使用 close( ) 来关闭文件

示例1# 假设123.txt内容为 hello world
try:
    wj = open('123.txt')
    dq = wj.read()
    print(dq)
    dq = None
    wj.close()
    print(dq)
    dq = wj.read()
    print(dq)
except Exception as e:
    print('出现了错误代码:',e)
else:
    print('程序正常')

>> hello world
>> None
>> 出现了错误代码: I/O operation on closed file.

关闭后的文件就无法在进行操作了
还有一种另一种打开方法无需关闭

1.4、另一种打开文件方式
  • with

with 语句打开的文件在执行完 with 代码块后会自动关闭文件

示例1try:
    with open('123.txt') as wj:
        print(wj.read())
    print(wj.read())
except:
    print('出现了错误')
else:
    print('程序正常')
    
>> hello world
>> 出现了错误
1.5、较大文件的读写
  • 文件读写

1、纯文本文件 utf -8等编码编写的文本就是文本文件
2、二进制文件(图片、音频、视频…)

  • open()

open( ) 打开文件默认是以文本文件打开的,
如果要以二进制文件打开则需要在打开时候声明文件以UTF-8格式打开

在open() 打开时候把后面更改读写方式

符号描述
t文本模式 ( 默认打开方式 )
x写入模式,新建一个文件,如果文件存在则会报错。
b二进制模式
+可读可写
r只读
rb二进制打开,只读
r+读写
w写入
wb二进制打开,写入
w+读写
a追加
ab二进制打开,追加
语法:
open(文件,encoding='utf-8')
  • read( )

read默认是读取文件全部内容
read接受一个size作为参数,该参数用来指定读取字符的数量
每次读取的位置都是从上一次读取的位置接着读取

with open('123.txt',encoding='utf-8') as wj:
	dq = wj.read(5)
	print(dq)
	print(len(dq))

>> hello
>> 5
  • readline()

用来读取一行内容,会把内容放入表格返回

  • write

文件写入

with open('123.txt','w',) as wj:
	wj.write('hello Python')

with open('123.txt','r',) as wj:
	print(wj.read())

>> hello Python
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值