Python 文件操作与包管理完全指南

发布时间:2026/9/28 4:44:09

Python 文件操作与包管理完全指南
大家好今天我们来学习 Python 中非常重要的两个核心技能文件操作和包管理。文件操作让我们的程序能够持久化存储数据而包管理则帮助我们更好地组织和复用代码。这篇文章将带你从零开始全面掌握这些知识点。 目录一、文件操作概述二、文件的基本操作三、文件读写详解四、文件备份案例五、OS模块实现文件操作六、Python模块七、Python包八、总结一、文件操作概述1.1 什么是文件文件在计算机领域可以通俗地理解为存储在电脑硬盘、U盘等存储设备上的一组数据的集合。为了让你更好理解可以把它想象成现实生活中的一个档案袋或文档。内存中存放的数据在计算机关机后就会消失 要长久保存数据就要使用硬盘、光盘、U盘等设备 为了便于数据的管理和检索引入了文件的概念1.2 为什么需要文件操作程序运行时的数据默认存在内存里内存断电数据就消失文件保存在硬盘可以长久保存数据文件操作让程序下一次执行时可以直接使用之前保存的数据而不必重新制作1.3 文件操作包含哪些内容在日常生活中文件操作主要包括打开、关闭、读、写、追加等操作。# 文件操作三步走 # ① 打开文件 → ② 读写文件 → ③ 关闭文件二、文件的基本操作2.1open()打开函数在 Python 中使用open函数可以打开一个已经存在的文件或者创建一个新文件。open(name, mode, encodingcode)参数说明name要打开的目标文件的路径字符串mode设置打开文件的模式访问模式encoding文件的编码格式gbk、utf8字符串2.2 文件访问模式详解模式说明文件不存在指针位置r只读❌ 报错开头w写入✅ 创建开头清空r读写❌ 报错开头w读写覆盖✅ 创建开头清空a追加写入✅ 创建末尾a读写追加✅ 创建末尾# 以只读方式打开文件 f open(python.py, r, encodingutf8)2.3close()关闭函数# 打开文件 f open(python.txt, w, encodingutf8) # 文件写入 f.write(hello world) # 关闭文件 f.close()2.4 写操作快速入门# 1. 打开文件 f open(python.txt, w, encodingutf8) # 2. 文件写入 f.write(hello world) # 3. 关闭文件 f.close()三、文件读写详解3.1 上下文管理器with 语句with是 Python 中一个上下文管理器的关键字你可以把它理解成一个自动打扫卫生的管家。为什么不推荐手动 close如果写文件时发生异常f.close()可能根本不会执行忘记关闭文件会导致内存泄漏、文件被占用等问题with open(file.txt, w, encodingutf8) as f: f.write(Hello) # 文件自动关闭不用你操心优点不管代码是否报错文件都会被正确关闭代码更简洁、更安全你再也不用担心忘记close()了3.2read()读取# 读取指定数量的字符 with open(python.txt, r, encodingutf8) as f: content f.read(5) # 读取前5个字符 print(content) # 读取全部内容 with open(python.txt, r, encodingutf8) as f: content f.read() # 读取所有内容 print(content)⚠️ 注意如果读取不成功可能是读取指针在末尾需要使用seek(0)将指针移动到最前面。with open(python.txt, w, encodingutf8) as f: f.write(Hello World) # f.read() # 读不到内容指针在末尾 f.seek(0) # 将指针移动到开头 content f.read() print(content) # 输出: Hello World3.3readline()读取一行# 一次读取一行内容 with open(python.txt, r, encodingutf8) as f: content f.readline() print(f第一行{content}) content f.readline() print(f第二行{content})3.4readlines()读取所有行# 一次读取所有行返回列表 with open(python.txt, r, encodingutf8) as f: content f.readlines() # [hello world\n, abcdefg\n, aaa\n, bbb\n, ccc] print(content)3.5 文件指针操作方法作用f.tell()获取当前文件指针位置f.seek(0)将指针移动到文件开头f.seek(0, 2)将指针移动到文件末尾with open(test.txt, w, encodingutf8) as f: print(f.tell()) # 输出: 0 (开头) f.write(Hello) print(f.tell()) # 输出: 5 (末尾) f.seek(0) # 回到开头 print(f.read()) # 输出: Hello四、文件备份案例需求已知当前目录下存在一个任意文件完成对该文件的备份功能备份文件名为xx[备份].txt。实现思路读取原始文件创建一个空的备份文件从原始文件中把数据写入到空的备份文件中# 使用 with 同时管理两个文件 with open(test1.txt, r, encodingutf8) as f1, \ open(test1[备份].txt, w, encodingutf8) as f2: data f1.read() f2.write(data) # 退出 with 代码块后f1 和 f2 自动关闭五、OS模块实现文件操作5.1 什么是 OS 模块os 模块是 Python 标准库的一部分它提供了丰富的功能来与操作系统进行交互。通过 os 模块我们可以执行许多与文件和目录管理相关的操作。import os # 使用 os 模块的相关功能 os.函数名()5.2 文件操作编号函数功能1os.rename(目标文件名称, 新文件名称)对文件进行重命名操作2os.remove(要删除文件名称)对文件进行删除操作import os # 1. 重命名文件 os.rename(temp.txt, python.txt) print(✅ 已重命名为 python.txt) # 2. 删除文件 os.remove(python.txt) print(✅ 已删除 python.txt)5.3 文件夹操作编号函数功能1os.mkdir(新文件夹名称)创建一个指定名称的文件夹2os.getcwd()获取当前目录名称3os.chdir(切换后目录名称)切换目录4os.listdir(目标目录)获取指定目录下的文件信息返回列表5os.rmdir(目标目录)删除一个指定名称的空文件夹案例文件夹综合操作import os # 1. 将当前工作目录切换到 static 文件夹 os.chdir(static) # 2. 创建 images 以及 videos 文件夹 os.mkdir(images) os.mkdir(videos) # 3. 获取目录下的所有文件 for i in os.listdir(): print(i) # 4. 移除 videos 文件夹 os.rmdir(videos)六、Python模块6.1 什么是模块Python 模块通俗来说就是一个包含了 Python 代码的.py文件。你可以把它想象成一本使用说明书或工具箱。当你需要完成某个特定任务时不用从头开始造轮子直接拿来这个工具箱就能用。6.2 模块的导入方式①import 模块名import 模块名 import 模块名1, 模块名2 模块名.功能名()案例import time print(开始) time.sleep(1) # 让程序睡眠1秒 print(结束)②from 模块名 import 功能名from 模块名 import 功能名 功能名()案例from time import sleep print(开始) sleep(1) # 让程序睡眠1秒 print(结束)③from 模块名 import *from 模块名 import * 功能名()案例from time import * print(开始) sleep(1) print(结束)④as定义别名# 模块别名 import 模块名 as 别名 # 功能别名 from 模块名 import 功能 as 别名案例# 模块别名 import time as tt tt.sleep(2) print(HELLO) # 功能别名 from time import sleep as sl sl(2) print(HELLO)6.3 制作自定义模块每个 Python 文件都可以作为一个模块模块的名字就是文件的名字。# my_module1.py def test(a, b): print(a b) # 在其他文件中导入使用 import my_module1 my_module1.test(10, 20) # 输出: 306.4__name__与测试代码在实际开发中开发人员会在模块中添加测试代码。但问题是其他文件导入该模块时测试代码也会被执行。# my_module1.py def test(a, b): print(a b) # 使用 __name__ 控制测试代码仅在当前文件执行 if __name__ __main__: test(1, 1) # 只有直接运行此文件时才执行__name__变量当模块被直接运行时__name__的值为__main__当模块被导入时__name__的值为模块名七、Python包7.1 什么是 Python 包Python 包通俗来说就是一个用来存放多个模块.py 文件的文件夹。你可以把包想象成一个工具箱收纳箱——它把功能相似的工具模块整理在一起方便查找和使用也能避免不同功能之间的混乱。my_package/ ├── __init__.py # 包的标识文件 ├── my_module1.py # 模块1 ├── my_module2.py # 模块2 └── my_module3.py # 模块37.2__init__.py的作用这是 Python 包中最重要的标识文件告诉 Python 解释器这个文件夹是一个包可以从中导入模块可以优化导入的路径# __init__.py 中优化导入路径 from .my_module1 import info_print1 from .my_module2 import info_print2 # 现在可以直接导入功能 from my_package import info_print1, info_print27.3 导入包的方式方式1import 包名.模块名import my_package.my_module1 import my_package.my_module2 my_package.my_module1.info_print1() my_package.my_module2.info_print2()方式2from 包名 import 模块名from my_package import my_module1, my_module2 my_module1.info_print1() my_module2.info_print2()方式3使用__init__.py优化推荐# __init__.py from .my_module1 import info_print1 from .my_module2 import info_print2 # 直接导入功能 from my_package import info_print1, info_print2 info_print1() info_print2()7.4 隐式包 vs 常规包类型__init__.py特点常规包✅ 包含可以优化导入路径功能更强大隐式包命名空间包❌ 不包含更轻量但不能优化导入路径八、总结文件操作核心要点操作函数说明打开文件open()返回文件对象读取文件read()、readline()、readlines()三种读取方式写入文件write()写入内容关闭文件close()释放资源自动管理with语句自动关闭推荐使用文件访问模式速查模式读写指针位置文件不存在r✅❌开头❌w❌✅开头清空✅a❌✅末尾追加✅r✅✅开头❌w✅✅开头清空✅a✅✅末尾追加✅OS 模块操作速查分类函数功能文件操作os.rename()重命名文件文件操作os.remove()删除文件目录操作os.mkdir()创建目录目录操作os.rmdir()删除空目录目录操作os.chdir()切换目录目录操作os.getcwd()获取当前目录目录操作os.listdir()列出目录内容模块与包导入方式方式语法使用导入模块import 模块名模块名.功能()导入功能from 模块 import 功能功能()全部导入from 模块 import *功能()模块别名import 模块 as 别名别名.功能()功能别名from 模块 import 功能 as 别名别名()最后提醒文件操作和包管理是 Python 编程中非常重要的技能。掌握好with语句管理文件资源、os模块操作文件系统、模块和包的导入机制你就能写出更加健壮、可维护的代码。多敲代码、多实践自然就能熟练运用如果觉得有帮助欢迎点赞、收藏、评论

相关新闻

IPD咨询洞察:技术遥遥领先,为什么产品还是卖不动?六条标准戳破“技术自嗨“

IPD咨询洞察:技术遥遥领先,为什么产品还是卖不动?六条标准戳破“技术自嗨“

2026/8/23 4:13:53

一个管理者最怕遇到的场景技术团队拿着参数表走进会议室,指标全面领先竞品,掌声一片。半年后产品上市,市场却毫无波澜——这种"叫好不叫座",是很多管理者反复踩过的坑。翰德恩咨询在陪伴制造业与科技企业做经营诊断时发…

【单片机毕业设计推荐】基于 STM32 的环境温湿度与水位智能监测控制系统设计,基于 STM32 的加湿补水智能管控与防干烧报警系统设计(011603)

【单片机毕业设计推荐】基于 STM32 的环境温湿度与水位智能监测控制系统设计,基于 STM32 的加湿补水智能管控与防干烧报警系统设计(011603)

2026/8/23 4:13:54

文章目录20 个相关毕业设计备选题目项目研究背景摘要总体方案核心功能技术路线项目演示关于我们项目案例源码获取博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金…

MSPM0时钟监控与频率计数器实战:提升嵌入式系统可靠性与时钟精度

MSPM0时钟监控与频率计数器实战:提升嵌入式系统可靠性与时钟精度

2026/8/26 11:43:42

1. 项目概述与核心价值在嵌入式系统的世界里,时钟信号就像是整个系统的心跳。无论是微控制器内部的指令执行、外设的数据交换,还是实时任务的调度,都依赖于稳定、准确的时钟节拍。然而,现实环境往往充满挑战:晶体振荡器…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/28 4:08:17

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/27 1:30:29

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/28 2:15:29

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/28 3:14:54

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/28 3:58:00

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/28 3:47:14

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/26 14:29:04

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/26 13:57:22

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/26 23:35:16

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…