• python进阶(4)文件操作


    文件操作

    文件操作主要包括对文件内容的读写操作,这些操作是通过文件对象实现的,通过文件对象可以读写文本文件和二进制文件

    open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
    

    open()函数共有8个参数,其中参数file和mode是最为常用的,其他参数一般情况下很少使用,下面分别说一下这些参数的含义
    1.file参数
    file参数是要打开的文件,可以是字符串或整数。如果file是字符串表示文件名,文件名可以是相对当前目录的路径,也可以是绝对路径;如果file是整数表示文件描述符,文件描述符指向一个已经打开的文件
     
    2.mode参数
    设置打开模式,二进制文件设置rb,wb,xb,ab,如果是文本文件,则设置r,w,x,a

    • r:只读模式打开文件(默认)
    • w:写入模式打开文件,会覆盖已经存在的文件
    • x:独占创建模式,文件不存在时创建并以写入模式打开,如果文件已存在则抛出异常
    • a:追加模式,如果文件存在,则写入时内容追加到文件末尾
    • b:二进制模式
    • +:更新模式
    • t:文本模式(默认)
       

    3.buffering参数
    buffering是设置缓冲区策略,默认值为-1,当buffering=-1时系统会自动设置缓冲区,通常是4096或8192字节;当buffering=0时关闭缓冲区,关闭缓冲区时数据直接写入文件中,这种模式主要用于二进制文件的写入操作;当buffering>0时,buffering用来设置缓冲区字节大小
     

    4.encoding
    设置文件编码
     

    5.errors
    用来指定编码发生错误时如何处理
     

    6.newline
    用来设置换行模式
     

    文本文件读写

    • read(size=-1):从文件中读取字符串,size限制最多读取的字符数,size=-1时没有限制,读取全部内容
    • redline(size=-1):读取到换行符或文件尾并返回单行字符串,如果已经到文件尾,则返回一个空字符串,size是限制读取的字符数,size=-1时没有限制
    • readlines(hint=-1):读取文件数据到一个字符串列表中,每一个行数据是列表的一个元素,hint是限制读取的行数,hint=-1时没有限制
    • write(s):将字符串s写入文件,并返回写入的字符数
    • writelines(lines):向文件中写入一个列表,不添加行分隔符,因此通常为每一行末尾提供行分隔符
    • flush():刷新写缓冲区,数据会写入到文件中
       

    二进制文件读写

    • read(size=-1):从文件中读取字节,size限制最多读取的字节数,size=-1时没有限制,读取全部字节
    • redline(size=-1):从文件中读取并返回一行,size是限制读取的字节数,size=-1时没有限制
    • readlines(hint=-1):读取文件数据到一个列表中,每一个行数据是列表的一个元素,hint是限制读取的行数,hint=-1时没有限制
    • write(s):写入b字节,并返回写入的字符数
    • writelines(lines):向文件中写入一个列表,不添加行分隔符,因此通常为每一行末尾提供行分隔符
    • flush():刷新写缓冲区,数据会写入到文件中
       

    os模块

    Python对文件的操作是通过文件对象实现的,如删除文件、修改文件名,创建目录,删除目录和遍历目录,可以通过Python的os模块实现

    • os.rename(src, dst):修改文件名,src是源文件,dst是目标文件,它们都可以是相对路径或者绝对路径
    • os.remove(path):删除path所指的文件,如果path是目录,则会引发OSError
    • os.mkdir(path):创建path所指的目录,如果目录已存在,则会引发FileExistsError
    • os.rmdir(path):删除path所指的目录,如果目录非空,则会引发OSError
    • os.walk(top):遍历top所指的目录树,自顶向下遍历目录树,返回值是一个三元组(目录路径,目录名列表,文件名列表)
    • os.listdir(dir):列出指定目录中的文件和子目录
      常用的属性有以下两种
    • os.curdir属性:获得当前目录
    • os.pardir属性:获得当前父目录
       

    os.path模块

    • os.path.abspath(path):返回path的绝对路径
    • os.path.basename(path):返回路径的基础名部分,如果path是指向一个文件,则返回文件名,如果path指向的是一个目录,则返回最后目录名
    • os.path.dirname(path):返回path路径中目录部分
    • os.path.exists(path):判断path文件是否存在
    • os.path.isfile(path):如果path是文件,则返回True
    • os.path.isdir(path):如果path是目录,则返回True
    • os.path.getatime(path):返回最后一次的访问时间,返回值是一个UNIX的时间戳,如果文件不存在或无法访问,则引发OSError
    • os.path.getmtime(path):返回最后修改时间,返回值是一个UNIX的时间戳,如果文件不存在或无法访问,则引发OSError
    • os.path.getctime(path):返回创建时间,返回值是一个UNIX时间戳,如果文件不存在或无法访问,则引发OSError
    • os.path.getsize(path):返回文件大小,以字节为单位,如果文件不存在或无法访问,则引发OSError
  • 相关阅读:
    基于springboot1.5.9整合shiro时出现静态文件找不到的问题
    基于springboot多模块项目使用maven命令打成war包放到服务器上运行的问题
    关于使用map存放数据乱序”问题“
    springboot1.5.9整合websocket实现实时显示的小demo
    SpringBoot1.5.10.RELEASE配置mybatis的逆向工程
    SpringBoot1.5.10.RELEASE整合druid时,在druid monitor界面出现(*) property for user to setup
    SpringBoot1.5.10.RELEASE整合druid
    SpringBoot1.5.10.RELEASE项目如何在tomcat容器中运行
    JS学习-01
    List,Set,Map在java.util包下都是接口 List有两个实现类:ArrayList和LinkedList Set有两个实现类:HashSet和LinkedHashSet AbstractSet实现了Set
  • 原文地址:https://www.cnblogs.com/jiakecong/p/14444197.html
Copyright © 2020-2023  润新知