Python--文件的相关操作及异常


一、文件的打开和关闭

1.打开文件

在python,使用open函数,可以打开一个已经存在的
文件,或者创建一个新文件open(文件名,访问模式)
示例:
f = open("test.txt" , "w",encoding="utf-8")或者f = open("test.txt","r",encoding="utf-8")

在这里插入图片描述

2.关闭文件

close()
示例:
# 新建一个文件,文件名为:test.txt
f = open("test.txt","w",encoding="utf-8")
# 关闭这个文件
f.close()

二、文件的读写

1.写数据(write)

使用write()可以完成向文件写入数据
demo:新建一个文件file.py,向其中写入如下代码:(pycharm环境)
	f = open("test.txt","w",encoding="utf-8")
	f.write("hello world!")
	f.close()
	结果演示:
	hello world!

注意:如果文件不存在那么创建,如果存在那么就先清空,然后写入数据

2.读数据

使用read(num)可以从文件中读取数据,num表示要从文件中读取数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据

demo:新建一个文件file_read_test.py,向其中写入如下代码:
f = open("test.txt","r",encoding="utf-8")
content = f.read(5)   #最多读取五个数据
print(content)
print("-"*30)     #分割线,用来测试

content = f.read() #从上次读取的位置继续读取剩下的所有的数据
print(content)

f.close() #关闭文件,这个可以是个好习惯

运行结果:
hello
------------------------------
world!

注意:
如果用open打开文件时,如果使用的"r",那么可以省略,即只写open(“test.txt”)
如果没有文件,打开报错,存在该文件才能操作
如果文件中存在中文显示,会出现乱码需要添加encoding=“utf-8”
open(“test.txt”,“r”,encoding=“utf-8”)

3.读数据(readlines)

就像read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素

demo:
f = open("test.txt","r")
content = f.readlines()
print(type(content))
i = 1
for temp in content:
	print("%d:%s" %(i,temp))
	i+=1
f.close()

4.读数据(readline)

f = open("test.txt","r")
content = f.readline()
print("1:%s"%content)

content = f.readline()
print("2:%s" %content)

f.close()

扩展:可写(a)
f = open("test.txt", "a")
f.write("abc")
f.close()

(可写)形式打开文件,如果文件不存在则创建并从头添加写入的内容,存在则原有数据后追加数据

三、二进制文件的读写

1.读数据(rb)

with open("11.jpg","rb") as rf:
	res = rf.read()
	print(res)
第二种读取文件的方式(不需要手动关闭文件)
with open("文件","读取模式") as rf:
	操作
	
注意:
如果没有文件,打开报错,存在该文件才能操作

2.读数据和写文件(rb,wb)

with open("1.jpg","rb") as rf:
	res = rf.read()
	with open("textjpg.jpg","wb") as wf:
		res = wf.write(res)
	print(res)

四、文件与文件夹的相关操作

文件的相关操作
有些时候,需要对文件进行重命名、删除等一些操作,python的os模块中都有这些功能

1.文件重命名
os模块中的rename()可以完成对文件的重命名操作

rename(需要修改的文件名,新的文件名)
demo代码:
import os
os.rename("11.txt","22.txt")

2.删除文件
os模块中的remove()可以完成对文件的删除操作
remove(待删除的文件名)
import os
os.remove("11.txt")

3.创建文件夹
import os
os.mkdir("张三")

4.获取当前目录
import os
os.getcwd()

五、异常

1.异常简介

示例:
在这里插入图片描述

2.异常捕获案例剖析

案例剖析

1.捕获异常 try…except…

示例:

try:
	print("----test--1----")
	open("123.txt","r")
	print("----test--2----")
except IOError:
	pass
运行结果:

在这里插入图片描述
说明:
此程序看不到任何错误,因为用except捕获到了IOError异常,并添加了处理的方法
pass表示实现了相应的实现,但什么也不做; 如果把pass改为print语句,那么就会输出其他信息
小总结:
在这里插入图片描述
把可能出现问题的代码,放在try中
把处理异常的代码,放在except中

2.except捕获多个异常

示例:
在这里插入图片描述
运行结果如下:
在这里插入图片描述
修改后的代码为:在这里插入图片描述
输出结果为在这里插入图片描述
实际开发中,捕获多个异常的方式,
demo如下:
在这里插入图片描述
注意:
当捕获多个异常时,可以把要捕获的异常的名字,放到except后,并使用元组的方式仅进行存储

3.获取异常的信息描述

demo01:
在这里插入图片描述
demo02:
在这里插入图片描述

4.捕获所有异常

demo01:
在这里插入图片描述
demo02:
在这里插入图片描述

5.else

咋们应该对else并不陌生,在if中,他的作用是当条件不满足执行的实行;同样在try…except…中也是如此,即如果没有捕获到异常,那么就执行else中的事情
demo:
在这里插入图片描述
运行结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值