当前位置: 首页 > ds >正文

Python文件操作完全指南

1.文件操作基础

在Python中,文件操作是日常编程中经常会遇到的需求,包括读取配置文件、写入日志、处理数据文件等。Python提供了内置的`open()`函数来打开文件,并通过不同的模式来控制文件的读写行为。

1. 打开文件

# 打开文件,使用with语句会自动关闭文件
with open('example.txt', 'r') as file:
    content = file.read()print(content)

2. 文件打开模式

模式

描述

'r'

读取模式(默认)

'w'

写入模式,会覆盖已有文件

'a'

追加模式,在文件末尾添加内容

'x'

创建模式,如果文件存在则报错

'b'

二进制模式

't'

文本模式(默认)

2.文件读取操作

1. 读取整个文件内容

with open('example.txt', 'r') as file:
    content = file.read()print(content)

2. 逐行读取文件

with open('example.txt', 'r') as file:for line in file:print(line.strip())  # 去除行末的换行符

3. 读取指定数量的字符/字节

with open('example.txt', 'r') as file:
    first_10_chars = file.read(10)  # 读取前10个字符
    next_5_chars = file.read(5)     # 从第11个字符开始读取5个字符print(f"前10个字符: {first_10_chars}")print(f"接下来的5个字符: {next_5_chars}")

3.文件写入操作

1. 写入文本内容

with open('output.txt', 'w') as file:file.write("Hello, World!\n")file.write("This is a test.\n")

2. 追加内容到文件

with open('output.txt', 'a') as file:file.write("Appended line.\n")

3. 写入多行内容

lines = ["Line 1\n", "Line 2\n", "Line 3\n"]
with open('output.txt', 'w') as file:file.writelines(lines)

4.文件和目录操作

除了基本的文件读写,Python还提供了强大的文件和目录管理功能,主要通过`os`和`os.path`模块实现。

1. 检查文件是否存在

import osif os.path.exists('example.txt'):print("文件存在")
else:print("文件不存在")

2. 重命名和删除文件

import os# 重命名文件
os.rename('old_name.txt', 'new_name.txt')# 删除文件
if os.path.exists('temp.txt'):
    os.remove('temp.txt')

3. 创建和删除目录

import os# 创建目录
os.mkdir('new_directory')# 删除目录(必须为空)
os.rmdir('new_directory')# 创建多级目录
os.makedirs('level1/level2/level3')# 删除多级目录
import shutil
shutil.rmtree('level1')  # 会删除整个目录树

4. 遍历目录

import os# 遍历当前目录下的所有文件和子目录
for entry in os.scandir('.'):
    if entry.is_file():
        print(f"文件: {entry.name}")
    elif entry.is_dir():
        print(f"目录: {entry.name}")# 递归遍历目录树
for root, dirs, files in os.walk('.'):
    print(f"目录: {root}")
    for file in files:
        print(f"  文件: {file}")

5.高级文件操作

1. 使用上下文管理器自定义文件操作

class FileHandler:def __init__(self, filename, mode):
        self.filename = filename
        self.mode = mode
        self.file = Nonedef __enter__(self):
        self.file = open(self.filename, self.mode)return self.filedef __exit__(self, exc_type, exc_value, traceback):if self.file:
            self.file.close()# 使用自定义上下文管理器
with FileHandler('custom.txt', 'w') as file:file.write("Custom context manager example.\n")

2. 文件复制和移动

import shutil# 复制文件
shutil.copy('source.txt', 'destination.txt')# 移动文件
shutil.move('source.txt', 'new_location/')

3. 读取和写入JSON文件

import json# 写入JSON数据
data = {'name': 'John', 'age': 30, 'city': 'New York'}
with open('data.json', 'w') as file:
    json.dump(data, file, indent=4)# 读取JSON数据
with open('data.json', 'r') as file:
    loaded_data = json.load(file)
    print(loaded_data)

6.异常处理

在进行文件操作时,可能会遇到各种异常情况,如文件不存在、权限不足等,因此需要进行适当的异常处理。

try:with open('nonexistent.txt', 'r') as file:
        content = file.read()
except FileNotFoundError:print("错误:文件不存在")
except PermissionError:print("错误:没有访问权限")
except Exception as e:print(f"错误:发生了未知错误 - {e}")
else:print("文件读取成功")
finally:print("文件操作完成")

7.总结

Python提供了丰富而灵活的文件操作功能,无论是简单的文本文件处理,还是复杂的目录结构管理,都能轻松应对。掌握这些文件操作技术,将大大提高你处理数据和配置的效率。建议在实际应用中,根据具体需求选择合适的文件操作方式,并始终记得进行异常处理,确保程序的健壮性。

http://www.xdnf.cn/news/8989.html

相关文章:

  • 【TypeScript】结构化类型系统与标明类型系统
  • Linux 内核学习(8) --- 字符设备操作函数
  • SpringBoot中消息转换器的选择
  • some java面试题
  • 第三方检测机构如何凭借专业公正保障软件质量?资质有哪些?
  • ELF文件的作用详解
  • STL 标准模板库全面解析:容器、算法与迭代器的核心应用
  • Eigen 库实现最小二乘算法(Least Squares)
  • 如何用AI实现需求分析
  • Newtonsoft Json序列化数据不序列化默认数据
  • LeetCode 1345 跳跃游戏 IV
  • CentOS7更新 GLIBC 2.25
  • 基于亚博K210开发板——六轴姿态传感器水平测试板验证
  • Java集合使用中的常见错误与最佳实践
  • Oracle 如何实现AI自然语言查询
  • MySQL索引深度解析:从原理到实践
  • STM32的内部FLASH
  • JVM相关
  • 【MPC控制 - 从ACC到自动驾驶】4 MPC的“实战演练”:ACC Simulink仿真与结果深度解读
  • 【Linux】磁盘空间不足
  • vite+vue2安装步骤
  • 使用大模型预测亚急性脊髓联合变性(SCD)的技术方案大纲
  • x星球请求返回值加密
  • 《计算机组成原理》——第二章-10 现代计算机的总线结构
  • 大模型记忆法
  • 嵌入式Linux:子进程执行新程序
  • 智慧校园管理系统
  • openwrt虚拟机安装调试
  • 深入解析Java组合模式:构建灵活树形结构的艺术
  • python小知识 查看项目所有的依赖包