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

分类: 计算机技术
推荐阅读:
VirtualBox的无缝模式真是太酷了 VirtualBox的无缝模式真的很酷,可以让虚拟机中的系统和Windows系统共享一个窗口,具体是个什么效果,请看下图:
Linux终端重用上一条命令的参数 在Linux系统下,当你想使用上一条命令所用的参数,你可以通过这一条命令实现:
C语言isgraph()函数:判断字符是否可打印(且不是空格) isgraph()是C语言标准库中的一个函数,用于检查一个字符是否可以打印且不是空格字符;
Linux挂载一个临时的RAM分区 在Linux下,你可以将RAM当作文件系统使用,这比在Windows方便的多,使用RAM作为文件系统,其读写速度要比磁盘快得多;一条命令即可实现:挂载一个临时的RAM分区,分配指定大小的RAM空间来作为文件系统。
C语言isalnum()函数:判断字符是否为字母或数字 isalnum()函数在C语言中用于判断一个字符是否为字母或数字;如果字符是数字或字母,返回一个非0值,否则返回0;
Rust:if this is intentional, prefix it with an underscore解决方法 编译Rust程序时提示:if this is intentional, prefix it with an underscore: `_x`,这表明存在一个未使用的变量 x,你可以将其删除或在变量名前添加一个下划线前缀;