• Python文件操作


    一,打开文件

            在 Python 中,我们使用 open() 函数来打开文件。这个函数需要至少一个参数,即文件名(可以是相对路径或绝对路径)。open() 函数还接受一个可选的 mode 参数,用于指定打开文件的模式。

    常见的模式有:

    • 'r':只读模式(默认模式)。如果文件不存在,会抛出异常。
    • 'w':写入模式。如果文件已存在,其内容会被清空;如果文件不存在,会创建新文件。
    • 'a':追加模式。如果文件已存在,数据会被追加到文件末尾;如果文件不存在,会创建新文件。
    • 'x':独占创建模式。如果文件已存在,会抛出异常;如果文件不存在,会创建新文件。

    还可以在这些模式后加上 '+' 表示同时读写文件,以及 'b' 表示以二进制模式打开文件。

    1. # 以只读模式打开文件
    2. with open('example.txt', 'r') as file:
    3. content = file.read()
    4. print(content)
    5. # 以写入模式打开文件
    6. with open('example.txt', 'w') as file:
    7. file.write('Hello, World!')

            注意:在上面的示例中,我使用了 with 语句来打开文件。这是一种上下文管理器,可以确保文件在读取或写入完成后被正确关闭,即使发生异常也是如此。这是一种推荐的做法,可以避免文件泄露和其他与文件相关的问题。

    二,读取文件

    在文件被打开后,我们可以使用文件对象的各种方法来读取文件内容。最常用的方法是 read(),它可以一次性读取文件的全部内容,或者指定读取的字节数。

    另外,还有 readline() 方法用于逐行读取文件,以及 readlines() 方法用于将文件内容按行分割成一个列表。

    1. with open('example.txt', 'r') as file:
    2. # 读取整个文件
    3. content = file.read()
    4. print(content)
    5. # 逐行读取文件
    6. for line in file:
    7. print(line, end='') # 注意:这里需要手动去掉行尾的换行符
    8. # 将文件指针重置到文件开头
    9. file.seek(0)
    10. # 按行读取文件并分割成一个列表
    11. lines = file.readlines()
    12. for line in lines:
    13. print(line, end='')

    三,写入文件

            在写入模式下打开文件后,我们可以使用文件对象的 write() 方法来写入数据。这个方法接受一个字符串作为参数,并将该字符串写入文件。如果需要在字符串中包含换行符,可以使用 \n

    1. with open('example.txt', 'w') as file:
    2. file.write('Hello, World!\n')
    3. file.write('This is a test file.\n')

    四,关闭文件

    虽然使用 with 语句可以自动关闭文件,但在不使用 with 语句的情况下,我们仍然需要手动关闭文件。这可以通过调用文件对象的 close() 方法来实现。关闭文件是一个好习惯,可以释放系统资源并确保数据的完整性。

    1. file = open('example.txt', 'r')
    2. content = file.read()
    3. print(content)
    4. file.close() # 手动关闭文件

  • 相关阅读:
    深度/统信系统 dde-dconfig命令的用法
    Java 的 String、StringBuffer 和 StringBuilder(一文讲透)
    1230: 蜂巢
    【推理引擎】ONNX 模型解析
    pygame实现飞机大战游戏
    2022年6月和7月的工作经历
    PHP表单处理的案例分析
    java基础14 java流程控制和方法
    【React】AntD组件的使用--极客园--02.登录模块
    微信小程序开发17 日志监控:怎样面向业务设计日志方案?
  • 原文地址:https://blog.csdn.net/m0_72765822/article/details/139998797