Python open()函数

open()函数是Python中用于打开文件的内置函数。它可以打开一个文件,并返回一个文件对象,以便对文件进行读取、写入、追加等操作。

open()函数语法

open()函数的语法如下:

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

参数说明:

  • file:要打开的文件路径和名称,可以使用相对路径或绝对路径。
  • mode:打开文件的模式;如果不指定,默认为只读模式'r'
    • 'r':只读模式。默认情况下,如果不指定文件模式,则文件会以只读模式打开。如果文件不存在,则会抛出FileNotFoundError异常。
    • 'w':写入模式。如果文件存在,则覆盖文件中的内容。如果文件不存在,则创建一个新文件。
    • 'x':独占写入模式。如果文件不存在,则创建一个新文件。如果文件已经存在,则会抛出FileExistsError异常。
    • 'a':追加模式。如果文件存在,则在文件末尾添加新的内容。如果文件不存在,则创建一个新文件。
    • 'b':二进制模式。用于处理非文本文件,如图片、音频等。
    • 't':文本模式。默认情况下,如果不指定文件模式,则文件会以文本模式打开。
    • 可以使用一个或多个文件模式,以逗号分隔。例如,要以只读和二进制模式打开文件,可以这样写: file = open('filename', 'rb')

  • buffering:文件缓冲的大小。如果为-1或不指定,则使用系统默认值。
  • encoding:文件的编码方式。默认为None,表示使用系统默认编码方式。
  • errors:编码错误的处理方式。默认为None,表示忽略错误。其他可选值包括'strict'(抛出UnicodeError异常)、'ignore'(忽略错误)和'replace'(用?代替错误)等。
  • newline:文本模式下,读取或写入文件时使用的换行符。默认为None,表示使用系统默认换行符。其他可选值包括'\n''\r''\r\n'等。
  • closefd:如果为True,则表示在文件关闭时同时关闭文件描述符。默认为True
  • opener:一个可调用对象,用于打开文件。默认为None,表示使用内置的open()函数。

open()函数返回一个文件对象,可以使用该文件对象进行文件操作,如读取文件内容、写入文件内容等。当操作完成后,需要使用close()方法关闭文件对象,以释放资源。

open()函数示例

# 打开文件并读取内容
f = open('test.txt', 'r')
content = f.read()
print(content)

# 关闭文件对象
f.close()

# 打开文件并写入内容
f = open('test.txt', 'w')
f.write('Hello, world!')
f.close()

# 打开文件并追加内容
f = open('test.txt', 'a')
f.write('\nHow are you?')
f.close()

# 打开文件并读取一行内容
f = open('test.txt', 'r')
line = f.readline()
print(line)

# 打开文件并读取所有行的内容
f = open('test.txt', 'r')
lines = f.readlines()
print(lines)

# 关闭文件对象
f.close()

可与with语句配合使用:

# 打开文件并读取内容
with open('test.txt', 'r') as f:
    content = f.read()
    print(content)

file 对象

在打开文件后,可以使用文件对象来读取或写入文件内容。下面是一些常用的文件对象方法:

  • file.read(size):读取文件中size个字节的内容。如果没有指定size,则会读取整个文件。
  • file.readline():读取文件中一行的内容。
  • file.readlines():读取文件中所有行的内容,并返回一个列表,每个元素为一行的字符串。
  • file.write(string):将字符串写入文件。
  • file.writelines(list):将字符串列表写入文件,每个元素为一行的字符串。
  • file.close():关闭文件对象。

注意,在使用write()writelines()方法写入文件时,必须以二进制或文本模式打开文件。在使用read()readline()方法读取文件时,文件必须以相应的模式打开。

file 对象属性

在文件对象中还有一些属性,用于获取有关文件的信息。下面是一些常用的文件对象属性:

  • file.closed:判断文件是否已关闭,如果已关闭则返回True,否则返回False
  • file.mode: 返回文件的打开模式,例如'r'(只读)、'w'(写入)、'a'(追加)、'x'(排他)等等。
  • file.name: 返回文件的名称。
  • file.encoding: 返回文件的编码格式,如果文件没有指定编码格式,则返回None

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/python-built-in-functions/python-open.html

分类: 计算机技术
推荐阅读:
python bin()函数详细教程 bin()函数将一个整数转换成前缀为”0b“的二进制字符串形式,如果参数不是int对象,那它需要定义__index__()方法并返回一个整数;
cannot fallthrough final case in switch的解决方法 在Go语言中,fallthrough 用于 switch 语句的 case 块中,它将会在当前 case 块执行完后执行下一个 case 块,不论下个 case 块条件是否匹配,但如果 fallthrough 后没有 case ,则会产生 cannot fallthrough final case in switch 的错误。
PySide6控件教程中的一些约定 在本教程中,我们将介绍一些在PySide6中使用控件时的常用代码和内容约定,以帮助您编写易于理解、易于维护和高质量的GUI应用程序。
Python divmod()函数 在Python中,divmod()函数是一个内置函数,用于将两个数字相除并返回商和余数。divmod()函数接受两个参数,分别是被除数和除数,并返回一个包含商和余数的元组。其中,商是两个数相除得到的结果,而余数是两个数相除后的余数部分。
SQL简易教程 SQL简易教程提供了SQL的基本用法和高级概念;该教程很适合初学者,专业人士亦可参考。
Python计算圆周率,精确到n位 本文将使用Python计算圆周率,可精确到n位,n值越大精度越高。