python中的open函数

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

1. 函数签名

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

2. 参数说明

  • file:必需参数,表示要打开的文件的路径(字符串或路径对象)。可以是相对路径或绝对路径。

  • mode:可选参数,指定文件的打开模式。默认值为 'r'(只读模式)。常见的模式包括:

    • 'r':只读模式(默认值)。

    • 'w':写入模式,如果文件已存在则覆盖。

    • 'x':独占创建模式,如果文件已存在则抛出 FileExistsError

    • 'a':追加模式,如果文件不存在则创建。

    • 't':文本模式(默认值)。

    • 'b':二进制模式。

    • '+':更新模式(读写模式)。

  • buffering:可选参数,指定缓冲区大小。默认值为 -1,表示使用系统默认的缓冲区大小。

    • -1:使用系统默认缓冲区大小。

    • 0:无缓冲。

    • >0:指定缓冲区大小。

  • encoding:可选参数,指定文件的编码格式。在文本模式下使用,例如 'utf-8''ascii'、‘gbk’ 等。(注:gbk就是国标一系列,包括gbk2312等等)

  • errors:可选参数,指定如何处理编码错误。常见值包括:

    • 'strict'(默认):在遇到编码错误时抛出异常。

    • 'ignore':忽略编码错误。

    • 'replace':用替代字符替换错误字符。

  • newline:可选参数,指定如何处理换行符。在文本模式下使用,常见值包括:

    • None(默认):自动识别换行符。

    • '':不处理换行符。

    • '\n':将换行符统一为 Unix 风格。

    • '\r':将换行符统一为 Mac 风格。

    • '\r\n':将换行符统一为 Windows 风格。

  • closefd:可选参数,指定是否关闭文件描述符。默认值为 True

  • opener:可选参数,指定一个自定义的文件打开器。

3. 返回值

open() 返回一个文件对象(file object),支持以下常用方法:

  • read():读取文件的全部内容。

  • readline():读取文件的一行。

  • readlines():读取文件的所有行并返回一个列表。

  • write():写入内容到文件。

  • writelines():写入多行内容到文件。

  • seek():移动文件指针到指定位置。

  • tell():获取文件指针的当前位置。

  • close():关闭文件。

4. 常见用法

(1) 打开并读取文件
# 打开文件并读取内容
with open("example.txt", "r", encoding="utf-8") as file:
    content = file.read()
    print(content)
(2) 写入文件
# 打开文件并写入内容
with open("example.txt", "w", encoding="utf-8") as file:
    file.write("Hello, World!\n")
    file.write("This is a test.\n")
(3) 追加内容到文件
# 打开文件并追加内容
with open("example.txt", "a", encoding="utf-8") as file:
    file.write("This is appended content.\n")
(4) 逐行读取文件
# 打开文件并逐行读取
with open("example.txt", "r", encoding="utf-8") as file:
    for line in file:
        print(line.strip())  # 去掉行尾的换行符
(5) 处理二进制文件
# 打开并读取二进制文件
with open("image.png", "rb") as file:
    data = file.read()
    print(data)

# 写入二进制文件
with open("image_copy.png", "wb") as file:
    file.write(data)

5. 注意事项

  • 文件路径:如果文件路径不存在,open() 在写入模式下会创建文件,但在读取模式下会抛出 FileNotFoundError

  • 文件编码:在读写文本文件时,应该明确指定文件编码(如 'utf-8'),避免因系统默认编码导致的问题。

  • 文件关闭:使用 with 语句可以自动关闭文件,避免忘记调用 close() 导致的资源泄漏。(反正就是用多了会报错,重启一下电脑就好了)

6. open() 的替代方法

从 Python 3.5 开始,open() 也可以通过 io.open() 调用,两者功能完全相同。此外,pathlib 模块提供了更现代化的路径操作方式,例如:

Python复制

from pathlib import Path

# 使用 pathlib 打开文件
file_path = Path("example.txt")
with file_path.open("r", encoding="utf-8") as file:
    content = file.read()
    print(content)

你可能感兴趣的:(python爬虫学习0基础,python,开发语言)