**文件与流:打通 Python 数据世界的“血管”**

在编程的世界里,内存中的数据如同流水,短暂而易逝。一旦程序关闭,所有操作痕迹便消失殆尽。如何将这些数据长久保存?如何读取外部世界的大量文本?本期课程《Python文件和流》,李宁老师将带你掌握 Python 中最基础也最核心的 IO 技能,学会让程序与外部文件“对话”。

**一、 打开文件:从“读写”开始**

课程的起点是文件的读取与写入(Read/Write)。这是所有文件操作的基石。李宁老师并未止步于语法罗列,而是深入讲解了 `open()` 函数的用法。你需要理解三种核心模式:只读('r')、只写('w')以及追加('a')。特别需要注意的是,使用 'w' 模式时,若文件已存在,原有内容将被清空——这是一个新手极易踩坑的陷阱。老师通过实例演示了如何将列表、字符串等数据写入 `.txt` 文件,以及如何将文件内容完整读入内存,让你直观感受数据在程序与磁盘间的流动。

**二、 管道输出:让程序“动”起来**

除了本地文件,Python 还能与操作系统层面的“流”进行交互。第二部分讲解了管道输出(Pipe Output)。这不仅仅是打印结果到屏幕,而是理解标准输出流(stdout)的概念。在 Linux/Unix 环境下,这意味着你的 Python 程序可以像其他命令行工具一样,通过管道符 `|` 将数据传递给下一个命令,或者接收前一个命令的输入。这种思维方式是构建自动化脚本和处理大数据流的关键。

**三、 逐行处理:高效且优雅**

当面对大型日志文件或海量文本时,一次性将整个文件读入内存往往会导致内存溢出。这时,“读行和写行”就显得尤为重要。课程介绍了 `readline()` 和 `readlines()` 的区别,并重点推荐了直接使用 `for line in file` 的迭代方式。这种方式不仅代码简洁,而且内存占用极低,是处理大文件的最佳实践。李宁老师强调,好的程序员不仅要让程序跑通,更要考虑资源效率。

**四、 FileInput:多文件处理的利器**

进阶部分,老师引入了 `fileinput` 模块。当你的任务涉及同时处理多个文件,或者需要修改文件内容时,手动循环打开多个文件显得笨拙而低效。`FileInput` 对象允许你像处理单个文件一样,透明地遍历多个文件的标准输入流。这在批量处理日志、合并多个数据集等场景中极具威力,体现了 Python “自带电池”(Battery Included)的哲学。

**五、 实战演练:从理论到能力**

最后两部分为练习题答案详解。题目涵盖了文件读写、异常处理及多文件操作等常见考点。通过对照答案,你可以检验自己是否真正理解了文件关闭(`close()` 或 `with` 语句)、编码设置(如 utf-8 与 gbk 的转换)等细节问题。

**学习建议**

本章节内容看似基础,实则决定了你未来处理数据的上限。建议在学习时,务必亲手敲代码,尝试创建、修改、读取不同编码格式的文件。特别要注意体会“上下文管理器(with 语句)”在处理文件时的安全性与便利性。掌握文件与流,你就拥有了让 Python 程序承载更多信息、连接更广泛系统的钥匙。

课程目录

课程目录6 集
  • 1 读文件和写文件 (23:34).mp4
  • 2 管道输出 (07:47).mp4
  • 3 读行和写行 (05:54).mp4
  • 4 使用FileInput对象读取文件 (04:45).mp4
  • 5 练习题答案(1) (09:42).mp4
  • 6 练习题答案(2) (04:43).mp4