文章目录
一、文件的打开和关闭
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:
运行结果如下: