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

发布时间:2026/7/24 3:11:17

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/7/24 3:11:17

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

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

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

2026/7/24 3:11:16

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

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

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

2026/7/24 3:01:16

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

MSPM0 RTC寄存器深度解析:从基础概念到实战配置

MSPM0 RTC寄存器深度解析:从基础概念到实战配置

2026/7/24 3:51:18

1. 项目概述:深入MSPM0 RTC寄存器世界在嵌入式系统开发中,实时时钟(RTC)模块的重要性怎么强调都不为过。它不仅仅是系统里的一个“电子表”,更是维系设备时间基准、实现定时唤醒、记录关键事件时间戳的“心脏”。尤其是…

程序员职业转型:六大方向与实操指南

程序员职业转型:六大方向与实操指南

2026/7/24 3:51:18

1. 大龄程序员转型的现实困境与突围方向三十岁后的程序员群体常常面临一个残酷的现实:当996的加班文化遇上中年危机,当新技术浪潮不断冲刷着原有的技术栈,很多人开始思考"我还能写多少年代码?"这个问题。我身边就有不少…

模型路由实战:基于FastAPI构建智能LLM调度系统

模型路由实战:基于FastAPI构建智能LLM调度系统

2026/7/24 3:51:18

在实际 AI 应用开发中,一个常见的痛点是如何在众多大语言模型(如 GPT-4、Claude、国产模型等)中选择最适合当前任务的一个。手动切换模型不仅效率低下,而且难以根据成本、响应速度、输出质量等指标进行动态优化。Ramp 提出的“模型…

UCC28600准谐振反激开关电源EVM设计解析与工程实践

UCC28600准谐振反激开关电源EVM设计解析与工程实践

2026/7/24 3:51:18

1. 项目概述与核心价值在电源工程师的日常工具箱里,评估模块(EVM)扮演着“概念验证车”的角色。它不是一个最终产品,而是一个将芯片数据手册上的理论曲线和公式,转化为可触摸、可测量、可复现的物理实体的桥梁。今天要…

TPS61185 LED驱动电路设计:外围元件选型与PCB布局实战指南

TPS61185 LED驱动电路设计:外围元件选型与PCB布局实战指南

2026/7/24 3:51:18

1. 项目概述:从芯片手册到可靠板卡做硬件设计,尤其是开关电源,最怕的就是“芯片焊上去,一上电就冒烟”。我这些年画过的板子不少,踩过的坑更多,深知一个道理:再好的芯片,外围电路和P…

2026年企业自动化运维平台选型指南:四大主流方案能力对比与场景适配分析

2026年企业自动化运维平台选型指南:四大主流方案能力对比与场景适配分析

2026/7/24 3:41:18

2026年核心判断:据IIM信息研究数据,2025年全球运维自动化市场规模已达348.7亿美元,同比增长19.2%,预计2026年将突破415亿美元;博研咨询《2026年中国IT运维管理行业市场规模及投资前景预测分析报告》表明中国IT运维管理…

微服务进阶:服务网格与Istio

微服务进阶:服务网格与Istio

2026/7/23 3:40:08

541|微服务进阶:服务网格与Istio 上篇文章我们聊了微服务的基本概念和拆分方法。 但微服务多了,问题也多了: 服务之间怎么通信? 怎么监控每个服务的调用链路? 熔断、限流、重试怎么做? 安全认证怎么统一? 以前这些都靠SDK库(比如Hystrix、Feign),每个服务都要集成…

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

零售超级终端全域协同:ShareKit 碰一碰商品流转业务落地案例

2026/7/23 4:40:05

一、零售门店全域协同业务背景与行业痛点 1.1 门店超级终端设备矩阵(连锁便利店/商超标准配置) 自助收银Kiosk一体机:顾客结算、自助核销优惠券、商品素材预览;运营折叠平板:店长后台商品上新、图片录入、活动配置、…

噗叽短视频界面分析

噗叽短视频界面分析

2026/7/23 1:54:13

1 和小红书类似,可以采用类似判断方法------------其实他比小红书好判断,因为他没有图片,控件位置几乎是固定的,都不用判断------------2 因为他没有点赞按钮------------而且几乎所有控件位置都是完全一样的,所以我就…

Django毕设项目:基于 Django 的 智能化学生综合素质测评审核系统 校园学生评优评奖综合管理系统(源码+文档,讲解、调试运行,定制等)

Django毕设项目:基于 Django 的 智能化学生综合素质测评审核系统 校园学生评优评奖综合管理系统(源码+文档,讲解、调试运行,定制等)

2026/7/24 0:01:07

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

[具身智能-634]:Python 封装的地平线 VIO 多媒体库:libsrcampy库详解

[具身智能-634]:Python 封装的地平线 VIO 多媒体库:libsrcampy库详解

2026/7/24 0:01:07

srcampy /libsrcampy 名称释义先明确结论: 官方文档没有公布标准化英文全称,是地平线内部项目缩写;行业公认拆解如下:srcampy Source Amplifier Python bindingsrc Source(图像源:MIPI Sensor、视频源&am…

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

2026/7/24 0:01:07

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…