python 中open函数用法详解

  • Post category:Python

当我们需要在Python中读取文件、写入文件等操作时,就需要使用到open()函数。本文将详细讲解Python中open()函数的用法,包括函数参数的含义以及几个示例。

open()函数的基本用法

open() 函数的基本语法如下所述:

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

这个函数通过传入不同的参数来控制文件的读写,其中常用的参数有:

  • file:必需。文件路径(相对或绝对路径)及文件名。
  • mode:可选。文件打开模式,有rwaxbt等,具体解释如下:
  • 'r':以只读方式打开文件。文件指针放在文件的开头。这是默认模式。
  • 'w':以写入方式打开文件。如果文件已存在,则覆盖旧数据。如果文件不存在,则创建新文件。
  • 'a':以追加模式打开文件。如果文件存在,则在文件末尾追加新数据。如果文件不存在,则创建新文件进行写入。
  • 'x':以独占方式打开文件。如果文件已存在,则打开操作会失败。如果文件不存在,则创建文件进行写入。
  • 'b':以二进制模式打开文件。一般用于非文本文件,如图片、声音等。
  • 't':以文本模式(默认)打开文件。一般用于文本文件,如txt、html等。
  • '+':可读写模式(可添加到其他模式中使用),例如 'r+''w+''a+'等。
  • buffering:可选。0表示不缓冲;1表示缓冲。默认值系统可设置。
  • encoding:将文本模式下的字节流编码为指定的编码。例如:encoding="utf-8",表示以UTF-8的编码方式打开文件。
  • errors:可选。如果指定的编码不能解码组件文件中的某些字符,该参数指定如何处理错误。'strict' – 抛出异常;'ignore' – 跳过错误;'replace' – 将错误替换为问号。
  • newline:可选。定义转换后返回的换行符,有’\n’、’\r’、’\r\n’和None。默认None表示采用系统默认换行符。
  • closefd:可选。传递False以避免关闭文件描述符。
  • opener:使用自定义开启器。在Python 3.3中引入。如果使用了这个参数,则open()函数的所有其他参数都将被忽略。

下面是一些使用open()函数的示例:

示例1:打开文件,并读取其中的内容

# 打开一个文件,并读取其中的内容
with open('file.txt', 'r') as f:
    content = f.read()
    print(content)

该示例中,open()函数打开file.txt文件,并使用参数'r'打开(默认情况下)。使用with语句可以保险地关闭文件对象,以确保内存资源得到释放。

接着使用read()函数从文件f中读取文件内容,并将其赋给content变量。最后将该变量打印出来。

示例2:向文件中写入一行文本内容

# 向文件中写入一行文本,使用a模式打开文件。
with open("test.txt", "a") as f:
    f.write("这是新加的内容。\n")

该示例中,open()函数打开test.txt文件,在文件末尾以追加模式('a')打开文件,并使用with语句确保文件正常关闭。write()函数将文本内容写入文件,'\n'表示换行。

总结

Python open()函数是文件操作的基础,它可以读取文件、写入文件,还可以控制文件读写权限。在使用open()函数时,应该注意参数的设置。