python3 文件操作open() 方法超全详解

2020-04-26 10:17:24 浏览数 (1)

#####python3:open() 方法

代码语言:txt复制
#open()常用方法是接收两个参数,分别是文件名(file)和模式(mode)
f = open('文件路径' , '模式')      #这里的模式指的是处理文件的方式,是打开还是写入还是追加等等

在python3中我们用open() 方法来打开一个文件(可以是文本、图片、视频等),并且返回文件的对象

我们在对文件进行的处理过程中都需要用到open()函数,但是当文件无法被打开,python3会抛出 OSError错误

使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。

代码语言:txt复制
f = open('文件路径' , '模式')  
f.close()

文件使用完毕后必须关闭,因为文件对象会占用系统的资源,并且系统能打开的文件数量也是有限的

open() 方法的完整语法格式

代码语言:txt复制
open(file, mode='r', buffering=-1 , encoding=None , errors=None , newline=None , closefd=True , opener=None)
  • file---文件路径,是open()方法必需的参数,指文件的相对或者绝对路径
  • mode---模式,可选参数,指文件打开的方式
  • buffering---设置缓冲策略,也是一个可选参数,它一般有三种设置。
  1. buffering设置为0时,即表示不使用缓冲,直接进行读写,但是这个设置只在二进制模式下有效
  2. buffering设置为1时,表示在文本模式下使用行缓冲区方式
  3. buffering设置大于1时,表示缓冲区的设置大小
  • encoding---文件编码格式,可选参数,一般为utf-8或者gbk,只在文本模式下使用
  • errors---可选参数,它指定python如何处理编码或解码错误,它也不能在二进制模式下使用。以下为一些标准错误的处理程序:
    1. 当指明为'strict'时,编码出错抛出异常ValueError,默认值None具有相同的效果。
  1. 'ignore'---忽略错误。请注意,忽略编码错误可能会导致数据丢失。
  2. 'replace'使用某字符进行替代模式,(例如'?')插入到存在格式错误的数据的位置。
  3. 'surrogateescape'将表示任何不正确的字节,作为从U DC80到U DCFF范围内的Unicode私人使用区域中的代码点。当写入数据时使用surrogateescape错误处理程序时,这些专用代码点将被转回相同的字节。这对于处理未知编码中的文件很有用。
  4. 仅当写入文件时,才支持'xmlcharrefreplace'。编码不支持的字符将替换为相应的XML字符引用
  5. 'backslashreplace'通过Python的反斜杠转义序列替换格式错误的数据。
  6. 'namereplace',也仅在编写时支持,用 N {...}转义序列替换不支持的字符。
  • newline---用来控制文本模式之下,一行的结束字符。可以是None,’’,n,r,rn等
  • closefd---如果closefdFalse并且给出了文件描述器而不是文件名,则当文件关闭时,基本文件描述器将保持打开。如果给定文件名,则closefd必须为True(默认值),否则将产生错误。
  • opener---用来实现自己定义打开文件方式

0 人点赞