文件操作_python

在Python中,文件操作是一个基础但重要的功能。通过对文件的读取、写入和管理,你可以处理数据持久化以及与外部数据的交互。Python提供了内置函数和模块(如 os 和 shutil)来处理文件和目录。

7.1 打开、读取、写入文件

文件操作通常分为以下三步:

  1. 打开文件:使用 open() 函数。
  2. 操作文件:读取、写入或追加内容。
  3. 关闭文件:使用 close() 方法。

7.1.1 使用 open() 函数

open() 函数用于打开文件,并返回一个文件对象。它的基本语法如下:

open(file, mode='r', encoding=None)
  • 参数说明
    • file:文件路径(相对路径或绝对路径)。
    • mode:文件操作模式,常见选项:
      • 'r':只读模式(默认)。
      • 'w':写模式(如果文件不存在会创建,存在则清空)。
      • 'a':追加模式(在文件末尾写入)。
      • 'rb' / 'wb':以二进制模式读取/写入。
    • encoding:指定字符编码(如 utf-8)。

7.1.2 读取文件

文件对象提供了多种方法来读取内容:

  • read():读取整个文件内容。
  • readline():按行读取。
  • readlines():读取所有行,并返回列表。

示例

# 打开文件并读取内容
file = open('example.txt', 'r', encoding='utf-8')
content = file.read()  # 读取所有内容
print(content)
file.close()  # 关闭文件

7.1.3 写入文件

写入文件时可以使用 write() 方法。如果文件不存在,Python会自动创建文件。

示例

# 写入文件
file = open('example.txt', 'w', encoding='utf-8')
file.write("Hello, World!\n")
file.write("Python 文件操作示例。")
file.close()

7.1.4 追加内容

在追加模式下,写入内容不会覆盖已有内容。

示例

# 追加内容到文件
file = open('example.txt', 'a', encoding='utf-8')
file.write("\n追加的内容。")
file.close()

7.2 上下文管理器(with 语句)

使用 with 语句管理文件时,无需显式调用 close(),它会自动在操作完成后关闭文件,避免资源泄露。

示例

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

优点

  • 简洁。
  • 安全,自动处理文件关闭。

写入文件的 with 语句示例:

with open('example.txt', 'w', encoding='utf-8') as file:
    file.write("使用上下文管理器写入文件。")

7.3 文件路径与目录操作

在实际开发中,你可能需要操作不同路径的文件或者管理目录结构。Python的 os 和 shutil 模块提供了丰富的功能。

7.3.1 文件路径操作

使用 os 模块可以处理路径的拼接、分割等操作,确保代码在不同操作系统下都能正常运行。

示例

import os

# 获取当前工作目录
current_dir = os.getcwd()
print(f"当前目录:{current_dir}")

# 拼接路径
file_path = os.path.join(current_dir, 'example.txt')
print(f"文件路径:{file_path}")

# 检查文件是否存在
if os.path.exists(file_path):
    print("文件存在")
else:
    print("文件不存在")

7.3.2 目录操作

os 和 shutil 提供了创建、删除、遍历目录的功能。

示例

# 创建目录
os.mkdir('new_folder')

# 删除目录
os.rmdir('new_folder')

# 遍历目录
for root, dirs, files in os.walk('.'):  # 当前目录
    print(f"根目录:{root}")
    print(f"子目录:{dirs}")
    print(f"文件:{files}")

7.3.3 拷贝和移动文件

shutil 模块提供了高级文件管理功能。

示例

import shutil

# 拷贝文件
shutil.copy('example.txt', 'backup.txt')

# 移动文件
shutil.move('backup.txt', 'new_folder/backup.txt')

小结

  • 文件操作
    • 使用 open() 打开文件,模式决定操作类型(读取、写入或追加)。
    • 使用文件对象的 read()write() 方法读取或写入内容。
    • 使用 with 管理文件自动关闭资源。
  • 文件路径与目录
    • 使用 os 模块操作路径和目录(如创建、删除、遍历目录)。
    • 使用 shutil 进行高级操作(如拷贝、移动文件)。

通过熟练掌握文件操作和目录管理,你可以高效地处理数据文件和目录结构,为数据处理和持久化提供强大的支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值