python with open读取文件函数的使用方法

  • Post category:Python

当需要读写文件时,Python 提供了 with open 语句,它可以自动处理文件的开关和一些异常情况,可以大大简化文件读写的操作。

基本语法

with open(file_path, mode) as file_obj:
    # 对文件对象 file_obj 进行操作

参数说明:

  • file_path:文件路径,是文件在文件系统中的路径,可以为绝对路径或者相对路径。
  • mode:模式参数,表示对文件进行何种读写操作。常用的模式有以下几种:

  • 'r':读取模式,默认模式,文件指针在文件开头。

  • 'w':写入模式,如果文件存在,会覆盖原有内容;如果文件不存在则自动创建一个新的文件。
  • 'a':追加模式,如果文件存在,则在文件末尾追加写入;如果文件不存在则自动创建一个新的文件。
  • 'x':独占模式,操作文件前会先检查文件是否存在,如果不存在则创建新文件;如果存在则报错。
  • 'b':二进制模式,常常与其他模式一起使用,如 'rb' 表示二进制读取,’wb’ 表示二进制写入。

读取文件内容

使用 with open 语句可以自动打开并关闭文件,下面是一个读取文件内容的例子:

with open('test.txt', 'r') as file_obj:
    contents = file_obj.read()
    print(contents)

该语句会打开名为 test.txt 的文件,将文件指针移到文件开头,并将文件内容存储到变量 contents 中,最后打印文件内容。

如果文件不存在或者路径不正确,将会抛出 FileNotFoundError 异常,可以使用 try...except 语句来捕获该异常:

filename = 'no_file.txt'
try:
    with open(filename, 'r') as file_obj:
        contents = file_obj.read()
except FileNotFoundError:
    print(f"Sorry, the file {filename} does not exist.")

按行读取文件内容

使用 with open 语句可以方便地对文件逐行读取,下面是一个按行读取文件内容的例子:

with open('test.txt', 'r') as file_obj:
    for line in file_obj:
        print(line.strip())

该语句会打开名为 test.txt 的文件,在循环中遍历文件对象 file_obj 中的每一行,去掉每行末尾的空格和换行符后打印出来。

需要注意的是,对于大文件,每行应该单独处理,以避免占用过多内存。

总结

with open 语句是 Python 文件读写操作的基础语句,可以大大简化文件读写过程,提高 Python 程序的效率。在读写文件时需要注意文件路径和文件模式。