Python中的文件操作

Python中的文件操作

  1. open(file,mode=‘r’,buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)->_io.TextIOWrapper 打开一个文件,返回这个文件的IO流对象和文件描述符。如果打开失败抛出异常
    • file 文件路径,(可以是相对路径或绝对路径)

    • mode:文件模式,默认为r只读模式

      文字描述符 意义
      r 缺省的,表示只读打开 打开后文件指针指向开头
      w 只写打开,打开后文件指针指向开头。不管文件是否存在,都会生成全新内容的文件
      x 创建并写入一个新文件,打开后文件指针指向开头,文件不存在,创建文件。文件存在抛异常FillExistsError
      a 写入打开,打开后文件指针指向末尾。文件不存在,创建文件,只写打开,文件存在,只写打开,尾部追加内容。
      组合描述符
      b 二精制模式打开文件,可以和r,w,x,a组合,打开后读取和写入都是二进制。
      t 缺省值,默认打开模式为文本模式。上面r,w,x,a默认都是用文本模式打开
      + 读写打开一个文件,给,给原来只读、只写方式打开提供缺失的读或者写能力,需要与r,w,x,a组合使用。不能单独使用
    • buffering 缓冲区,默认值为None

      • -1 表示使用缺省大小的buffer。如果是二精制模式,使用io.DEFAULT_BUFFER_SIZE值,默认是4096或者8192。如果是文本模式,如果是终端设备,是行缓存方式,如果不是,则使用二进制模式的策略。
        • 0 只在二进制模式使用,表示关闭buffer
        • 1 只在文本模式使用,表示使用行缓冲,意思就是见到换行符flush
        • 大于1 使用指定buffer的大小
      • buffer缓冲区:缓冲区是一个内存空间,一般来说是一个FIFO队列,到缓冲区满了或者达到阀值,数据才会flush到磁盘。flush()将缓冲区数据写入到磁盘,close()关闭文件流,关闭前会调用flush()
      buffering 说明
      buffering=-1 t模式和b模式,都是io.DEFAULT_BUFFER_SIZE缺省缓冲区大小,字节
      buffering=0 b模式:关闭缓冲区,t模式:不支持
      buffering=1 t模式:行缓冲,遇到换行符才flush
      buffering>1 b模式:表示缓冲区大小。缓冲区的值可以超过io.DEFAULT_BUFFER_SIZE,直到设定的值超出后才把缓冲区flush。 t模式,是io.DEFAULT_BUFFER_SIZE字节,flush完后把当前字符串也写入磁盘
      • 总结规律:
        1. 文本模式,一般都用默认缓冲区大小
        2. 二精制模式,是一个个字节的操作,可以指定buffer的大小
        3. 一般来说,默认缓冲区大小是比较好的选择,除非明确知道,否则不调控它
        4. 一般编程中,明确知道需要写磁盘了,都会手动调用一次flush,而不是等到自动调用flush或者close的时候。
    • encoding 编码,仅文本模式使用。如果是b字节模式,无用

      • 默认值为None表示使用缺省编码,依赖操作系统。即 为默认值None是,使用文本模式打开文件时,默认使用的编码为系统默认编码。windows
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python文件操作是通过内置的`open()`函数进行的。`open()`函数用于打开一个文件,并返回一个文件对象,可以用于读取文件内容、写入文件内容或者进行其他文件操作。 下面是一些常见的文件操作示例: 1. 打开文件: ```python file = open("filename.txt", "mode") ``` 其,"filename.txt"是要打开文件名,"mode"是打开文件模式。常见的模式有: - "r": 只读模式,用于读取文件内容(默认模式)。 - "w": 写入模式,用于清空文件内容并写入新内容,如果文件不存在则创建新文件。 - "a": 追加模式,用于在文件末尾添加新内容,如果文件不存在则创建新文件。 - "x": 创建模式,用于创建新文件,如果文件已存在则会抛出异常。 2. 读取文件内容: ```python content = file.read() # 读取整个文件内容 print(content) ``` 3. 逐行读取文件内容: ```python for line in file: print(line) ``` 4. 写入文件内容: ```python file.write("Hello, world!") # 将字符串写入文件 ``` 5. 关闭文件: ```python file.close() # 关闭文件对象 ``` 在进行文件操作,建议使用`with`语句来打开和关闭文件,以确保及关闭文件并释放资源。例如: ```python with open("filename.txt", "r") as file: content = file.read() print(content) ``` 在`with`语句块打开文件会在退出`with`语句块自动关闭。 以上是一些基本的文件操作方法,你可以根据具体的需求使用不同的模式和方法来进行文件操作

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值