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
。