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

python 之 文件管理

文章目录

  • Python 文件相关操作总结
    • 一、文件与目录的基本概念
      • 路径类型
    • 二、文件读写(最核心)
      • 1️⃣ 打开文件:`open()`
      • 2️⃣ 推荐写法:`with open`
      • 3️⃣ 读取方式
      • 4️⃣ 写入方式
    • 三、目录操作(os 模块)
      • 1️⃣ 判断路径类型
      • 2️⃣ 创建 / 删除目录
      • 3️⃣ 列出目录内容
      • 4️⃣ 拼接路径(跨平台)
    • 四、遍历目录(重点)
      • 1️⃣ `os.walk()`(递归)
      • 2️⃣ 只遍历一层
    • 五、文件名与路径处理
      • 1️⃣ 获取文件扩展名(标准)
      • 2️⃣ 文件大小 / 修改时间
    • 六、文件类型统计(综合示例)
    • 七、文件复制 / 删除 / 重命名
      • 使用 `shutil`(更安全)
    • 八、使用 pathlib(现代写法)
    • 九、输入输出与文件结合
    • 十、常见错误总结(重点)
    • 十一、工程实践建议(你这个阶段非常重要)
    • 十二、一句话记忆版

下面是一份结构化、可直接复习与对照使用的 Python 文件操作完整总结。覆盖从基础到工程实践中最常用、最容易出错的部分,与你前面已经接触的os.walk、扩展名统计等内容是完全衔接的。

Python 文件相关操作总结


一、文件与目录的基本概念

对象说明
文件(file)存储数据的最小单位
目录(directory)用于组织文件和子目录
路径(path)文件或目录的定位方式

路径类型

  • 绝对路径D:\data\test.txt
  • 相对路径./data/test.txt

二、文件读写(最核心)

1️⃣ 打开文件:open()

open(file,mode='r',encoding=None)

常用模式:

模式含义
r读取(默认)
w写入(覆盖)
a追加
rb/wb二进制读 / 写

2️⃣ 推荐写法:with open

withopen("data.txt","r",encoding="utf-8")asf:content=f.read()

优点:

  • 自动关闭文件
  • 不易泄漏资源
  • 工程级标准写法

3️⃣ 读取方式

f.read()# 全部内容f.readline()# 一行f.readlines()# 行列表

推荐:

forlineinf:print(line.strip())

4️⃣ 写入方式

f.write("hello\n")f.writelines(["a\n","b\n"])

三、目录操作(os 模块)

1️⃣ 判断路径类型

os.path.exists(path)os.path.isfile(path)os.path.isdir(path)

2️⃣ 创建 / 删除目录

os.mkdir("dir")# 单层os.makedirs("a/b/c")# 多层os.rmdir("dir")# 空目录

3️⃣ 列出目录内容

os.listdir(path)

4️⃣ 拼接路径(跨平台)

os.path.join(root,filename)

禁止手写:

root+"/"+filename# ❌

四、遍历目录(重点)

1️⃣os.walk()(递归)

forroot,dirs,filesinos.walk(path):...
返回值含义
root当前目录路径
dirs子目录名列表
files文件名列表

控制递归:

dirs.remove("venv")

2️⃣ 只遍历一层

forroot,dirs,filesinos.walk(path):...break

五、文件名与路径处理

1️⃣ 获取文件扩展名(标准)

name,ext=os.path.splitext(filename)

2️⃣ 文件大小 / 修改时间

os.path.getsize(path)os.path.getmtime(path)

六、文件类型统计(综合示例)

fromcollectionsimportdefaultdictimportos counter=defaultdict(int)forroot,_,filesinos.walk(path):forfinfiles:_,ext=os.path.splitext(f)ext=ext.lower()ifextelse'no_extension'counter[ext]+=1

七、文件复制 / 删除 / 重命名

使用shutil(更安全)

importshutil shutil.copy(src,dst)shutil.move(src,dst)shutil.rmtree(dir_path)

八、使用 pathlib(现代写法)

frompathlibimportPath p=Path("data")forfileinp.rglob("*"):iffile.is_file():print(file.suffix)

对比:

ospathlib
函数式面向对象
老标准新推荐
灵活可读性强

九、输入输出与文件结合

path=input("请输入路径: ")withopen("result.txt","w",encoding="utf-8")asf:f.write(str(result))

十、常见错误总结(重点)

错误原因
文件未关闭未用with open
路径拼接错误手写/
编码报错未指定encoding
扩展名识别错split('.')
重复遍历os.walkbreak

十一、工程实践建议(你这个阶段非常重要)

  1. 路径处理统一用os.path.joinpathlib
  2. 遍历目录首选os.walk
  3. 文件扩展名用splitext
  4. 统计类问题用defaultdict / Counter
  5. 所有文件操作都包在with open

十二、一句话记忆版

Python 文件操作 =open读写 +os.walk遍历 +os.path处理路径

http://www.jsqmd.com/news/92492/

相关文章:

  • AI 驱动的软件测试全栈解决方案:自动化框架、智能缺陷检测与 A/B 测试优化
  • 空间变化偏振的产生
  • 26、调试 Shell 程序的实用方法
  • 10、网络安全漏洞利用与攻击技术详解
  • 科学训练提升孩子学习能力
  • 智能制造的分布式认知系统要素分析
  • LLM应用实践: NoteBookLM初次使用
  • 《51测试天地》电子杂志 第八十七期发布文章:命令行参数的 3 种实战用法
  • 在线招生宣传视频制作:内容优化与转化提升技巧
  • 11、网络渗透测试中的常见攻击技术解析
  • C++ 对象 核心介绍
  • 2025年12月高压细水雾泵组,档案室高压细水雾,高压细水雾设备厂商推荐:聚焦消防装备企业综合实力与核心竞争力 - 品牌鉴赏师
  • 2025年评价高的拖拉机旋耕机/施肥旋耕机一体机厂家最新权威实力榜 - 行业平台推荐
  • 2025年12月干雾抑尘,双流体干雾抑尘,干雾抑尘主机厂商推荐:聚焦企业综合实力与核心竞争力 - 品牌鉴赏师
  • 【机器学习】3.PCA降维与SVD
  • 2025年评价高的固定矿车最新TOP品牌厂家排行 - 行业平台推荐
  • 为啥小设备能塞下这么多功能?盲埋孔PCB藏玄机
  • 1、Kali Linux Web渗透测试指南
  • 4、AWS与Google Cloud Platform存储及服务详解
  • 【机器学习】1.决策树(Decision Tree)
  • 2025优质抖音直播运营公司推荐榜:新媒体运营、短视频培训、短视频运营、抖音代运营、抖音信息流、抖音关键词排名、抖音广告 - 优质品牌商家
  • 2025年中国企业官网建设十大品牌综合实力榜 数字时代企业门户建设服务商权威评测 - 匠子网络
  • 2、搭建Kali Linux测试环境全攻略
  • 探索未来汽车核心:新能源汽车动力系统MR实训软件
  • 【机器学习】案例1.1——决策树进行非线性回归任务(正弦曲线拟合)
  • 打卡信奥刷题(2540)用C++实现信奥 P2070 [USACO13JAN] 刷墙 Painting the Fence B
  • 3、渗透测试侦察阶段技术指南
  • 2025六安新能源汽车升级改装企业TOP5权威推荐:实力强企 - myqiye
  • 7、Docker 镜像构建、注册与存储全解析
  • 当本科生面对论文“三座大山”:选题迷茫、文献堆积、格式焦虑——书匠策AI如何用智能科研工具悄然化解