
大家好今天我们来学习 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模块操作文件系统、模块和包的导入机制你就能写出更加健壮、可维护的代码。多敲代码、多实践自然就能熟练运用如果觉得有帮助欢迎点赞、收藏、评论