Python连载笔记(七)——————文本文件的读写

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_42025108/article/details/102710816

一、文件读写基本概念

文件用于数据存储的单位
文件通常用来长期存储数据
文件中的数据是以字节的方式为单位进行顺序存储

操作流程:
    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])
#*************************************************************************************

猜你喜欢

转载自blog.csdn.net/qq_42025108/article/details/102710816