一、文件读写基本概念
文件用于数据存储的单位
文件通常用来长期存储数据
文件中的数据是以字节的方式为单位进行顺序存储
操作流程:
1.打开文件
2.读/写文件
3.关闭文件
注意:
任何操作系统,同一个应用程序同时打开文件的数量有限——有最大数限制,所以
在用完文件后需要关闭
核心功能:
'r':只读,读文件必须存在
'w':只写,打开即默认创建一个新文件,但如果文件已存在,则覆盖写
'a':追加写,如果打开的文件是已存在的,则直接对已有文件进行操作,如果打开的文件不存在则
创建新文件,只能执行写操作(追加在最后一行),不能读
注意:
如果需要文件既可读,又可写 在模式后面添加'+'比如: a+ :代表可读可写
二、文件打开函数——open
"""
1.文件的打开函数 open:
格式:
open(file,mode = "rt")
作用:
用于打开一个文件,返回此文件流对象,如果打开失败,则会触发OSError错误
2.文件的关闭方法:
f.close()
作用:
释放系统资源
"""
#***************************************************************
#第一步:打开a.txt文件
try:
f = open("a.txt",'rb')
print("打开文件成功!")
#读取文件
s = f.read()
print("文件中的内容是:",s)
except OSError as o:
print("打开文件失败!")
print("异常代码是:%s"%o)
#***************************************************************
"""
文本文件操作模式
't'(默认):
1.默认文件中存储的数据为字符数据,以行为单位分隔,在Python中换行统一是'\n'
2.对文本文件的读写需要用字符串(str)进行读取和写入数据
'b':
这是以字节的方式进行读取和写入,通常用于:音乐 电影 图片
各操作系统的换行符:
windows:"\r\n"
linux:"\n"
旧的mac版本:"\r"
新的mac版本:"\n"
注意:
在文件文本模式下,各系统的换行符在读入到Python的时候,自动转换成 字符"\n"
"""
"""
自己写一个info.txt,在文件中存储一些信息:
小张 20 100
小李 18 98
小王 17 95
写一个程序,将这些数据读取出来,打印在控制台中
"""
#***************************************************************
def read_file():
try:
f=open("info.txt","r",encoding="utf_8")
print("打开文件成功!")
#读取文件
s=f.read()
print("文件中的内容是:\n",s)
except OSError as e:
print("打开文件失败")
print("%s"%e)
read_file()
#***************************************************************
try:
f=open("info.txt","r",encoding="utf_8")
print("打开文件成功!")
#读取文件
s=f.readline(11)
s1=f.read(20)
print("文件中的内容是:\n",s)
print("文件中的内容是:\n", s1)
#如果读取过某条数据,并且没有关闭
#下次读取会接着读,而不会从头开始
except OSError as e:
print("打开文件失败")
print("%s"%e)
#***************************************************************
"""
read(num):
num是指一次性读多少字符
比如:现在有500M的txt本文文件,需要进行读取操作,怎么读?
这个时候就可以进行分段读取,每次取read(4096)
文本写文件操作:
'w':以字符方式写
'wb':以字节方式写
'a':追加写
"""
#***************************************************************
try:
f = open("mynote.txt",'w',encoding="utf-8")
f.write("你好")
f.write(" ")
f.write("python")
f.write("\n")
f.write("写入操作")
f.close()
except Exception as e:
print("操作有误,请稍后再试!")
# ***************************************************************
"""
写入一个程序,输入很多人的姓名,年龄,班级信息,存入文件"dangan.xtx"中,
"""
# ***************************************************************
judge = "1"
s = 0
while judge == "1":
str1 = input("请输入学生姓名,年龄,班级信息:")
s = s + 1
try:
f = open("dangan.txt", 'w', encoding="utf-8")
f.write(str1)
f.write("\n")
f.close()
except Exception as e:
print("操作有误,请稍后再试!")
if s == 5:
judge = input("继续输入请输入1,结束输入其他任意")
s = 0
# ***************************************************************
二、文件打开函数——with open
"""
由于经常会忘记关闭文件,而导致文件不可用或者损坏,所以产生了下列方式:
with open(file,"r") as f:
语句1
"""
#*************************************************************************************
try:
# f = open ("./test_file/info.txt",'r',encoding = "utf-8")
# s = f.read()
# print (s)
# f.close()
#以下方式待程序执行完毕,一定会自动释放资源
with open("./test_file/info.txt",'r',encoding = "utf-8") as f:
s = f.read()
print (s)
except Exception as e:
print ("文件打开失败!")
#*************************************************************************************
"""
图片的读取
"""
#*************************************************************************************
f_src = open("./test_file/koala.jpg","rb")
f_src1 = open("./test_file/Penguins.jpg","rb")
s = f_src.read()
s1 = f_src1.read()
# print(s)
# print(s1)
s2 = s + s1
# print(s2)
f_copy = open("./test_file/h123.jpg","wb")
f_copy.write(s2)
f_copy.close()
f_src.close()
f_src1.close()
print("哈哈哈1",s[0:10000])
print("哈哈哈2",s1[0:100000])
#*************************************************************************************