信息发布→ 登录 注册 退出

python文件操作的基础详细讲解(write、read、readlines、readline)

发布时间:2026-01-11

点击量:
目录
  • 前言
  • 1 文件操作
    • 1.1 文件打开与关闭
      • 1.1.1 打开文件
      • 1.1.2 关闭文件
  • 2 文件读写
    • 2.1 写数据(write)
      • 2.2 读数据(read)
        • 2.3 读数据(readlines)
          • 2.3 读数据(readline)
          • 3 文件的相关操作
            • 3.1 文件重命名
              • 3.2 删除文件
                • 3.3 创建文件夹
                  • 3.4 获取当前目录
                    • 3.5 改变默认目录
                    • 补充:文件综合操作实例
                      • 总结

                        前言

                        python 文件操作、文件读写(write、read、readlines、readline)、文件的相关操作,简单易懂

                        1 文件操作

                        文件就是把一些数据存起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力。

                        1.1 文件打开与关闭

                        1.1.1 打开文件

                        在python中,使用open函数,可以打开已经存在的文件,或者创建一个新文件,open(文件名,访问模式)

                        示例如下:

                        f = open(‘test.txt','w')

                        没有找到‘test.txt’文件,所以新建了‘test.txt’文件

                        1.1.2 关闭文件

                        close()

                        示例如下:

                        #新建一个文件,文件名为:test.txt
                        f = open(“text.txt”,”w”)
                        f.colse()#关闭这个文件

                        1.2 访问模式及说明

                        访问模式说明
                        r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
                        w打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
                        a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
                        rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
                        wb以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
                        ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
                        r+打开一个文件用于读写。文件指针将会放在文件的开头。
                        w+打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
                        a+打开一个文件用于读写,如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果改文件不存在,创建新文件用于读写。
                        rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头
                        wb+以二进制格式打开一个文件用于读写。如果改文件已存在则会覆盖。如果改文件不存在,创建新文件。
                        ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果改文件不存在,创建新文件用于读写。

                        2 文件读写

                        2.1 写数据(write)

                        使用write()可以完后向文件写入数据

                        示例如下:

                        #写
                        f = open("test.txt","w") #打开文件,w模式(写模式),文件不存在就新建
                        f.write("hello world,I am here!")   #将字符串写入文件中
                        f.close()   #关闭文件
                        

                        写入的内容

                        2.2 读数据(read)

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

                        示例如下:

                        #读:read方法,读取指定的字符,开始时定位在文件头部,每执行一次向后移动指定字符数
                        f = open("test.txt","r")
                        content = f.read(5) #一次读五个字符
                        print(content)
                        print('-'*30)
                        content = f.read()
                        print(content)
                        f.close()
                        

                        运行结果下图:

                        2.3 读数据(readlines)

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

                        示例如下:

                        f = open("test.txt","r")
                        content = f.readlines() # 一次性读取全部文件为列表,每行一个字符串
                        print(content) #['hello world,I am here!\n', 'hello world,I am here!\n', 'hello world,I am here!\n', 'hello world,I am here!\n',
                        
                        i = 1
                        for temp in content:
                            print("%d:%s"%(i,temp))
                            i += 1
                        f.close()
                        

                        运行结果下图:

                        2.3 读数据(readline)

                        readline一次读取一行

                        示例如下:

                        f = open("test.txt","r")
                        content = f.readline() #1:hello world,I am here!--1
                        print("1:%s"%content)
                        
                        content = f.readline() #2:hello world,I am here!--2
                        print("2:%s"%content)
                        f.close()
                        

                        运行结果下图:

                        3 文件的相关操作

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

                        3.1 文件重命名

                        os模块中的rename()可以完成对文件的重命名操作rename(需要修改的文件名,新的文件名)

                        import os
                        os.rename(“毕业论文.txt”,”毕业论文-最终版.txt”)
                        

                        3.2 删除文件

                        os中的remove()可以完成对文件的删除操作

                        remove(待删除的文件名)

                        import os 
                        os.remove(“毕业论文.txt”)
                        

                        3.3 创建文件夹

                        import os
                        os.mkdir(“张三”)
                        

                        3.4 获取当前目录

                        import os
                        os.getcwd()
                        

                        3.5 改变默认目录

                        import os
                        os.chdir(“../”)
                        

                        补充:文件综合操作实例

                        将文件夹下所有图片名称加上'_fc'

                        python代码:

                        # -*- coding:utf-8 -*-
                        import re
                        import os
                        import time
                        #str.split(string)分割字符串
                        #'连接符'.join(list) 将列表组成字符串
                        def change_name(path):
                            global i
                            if not os.path.isdir(path) and not os.path.isfile(path):
                                return False
                            if os.path.isfile(path):
                                file_path = os.path.split(path) #分割出目录与文件
                                lists = file_path[1].split('.') #分割出文件与文件扩展名
                                file_ext = lists[-1] #取出后缀名(列表切片操作)
                                img_ext = ['bmp','jpeg','gif','psd','png','jpg']
                                if file_ext in img_ext:
                                    os.rename(path,file_path[0]+'/'+lists[0]+'_fc.'+file_ext)
                                    i+=1 #注意这里的i是一个陷阱
                                #或者
                                #img_ext = 'bmp|jpeg|gif|psd|png|jpg'
                                #if file_ext in img_ext:
                                #    print('ok---'+file_ext)
                            elif os.path.isdir(path):
                                for x in os.listdir(path):
                                    change_name(os.path.join(path,x)) #os.path.join()在路径处理上很有用
                        
                        img_dir = 'D:\\xx\\xx\\images'
                        img_dir = img_dir.replace('\\','/')
                        start = time.time()
                        i = 0
                        change_name(img_dir)
                        c = time.time() - start
                        print('程序运行耗时:%0.2f'%(c))
                        print('总共处理了 %s 张图片'%(i))

                        总结

                        在线客服
                        服务热线

                        服务热线

                        4008888355

                        微信咨询
                        二维码
                        返回顶部
                        ×二维码

                        截屏,微信识别二维码

                        打开微信

                        微信号已复制,请打开微信添加咨询详情!