Skip to content

Latest commit

 

History

History
142 lines (104 loc) · 3.12 KB

File metadata and controls

142 lines (104 loc) · 3.12 KB
Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1
---
- oeasy Python 0434
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
本教程同步发布在: 

     个人网站: `https://oeasy.org` 
     蓝桥云课: `https://www.lanqiao.cn/courses/3584` 
     GitHub: `https://github.com/overmind1980/oeasy-python-tutorial` 
     Gitee: `https://gitee.com/overmind1980/oeasypython` 
---

读取文件

回忆

  • 上次研究了操作文件
  • 操作文件流分成三步
    • 打开文件流
    • 读取文件流
    • 关闭文件流
    • 读写文件
  • 这文件流太猛了
  • 一下子全出来了
  • 咱能细水长流么?🤔

重温文件流操作流程

  1. 打开文件流
    • f = open("oeasy.txt")
  2. 读取文件
    • f.read()
  3. 关闭文件流
    • f.close()
  • 上次的问题是文件流太猛
  • 一股脑全流出来了
  • 这次想要细水长流

readline

  • 想要让文件流
    • 一行一行流出来

图片描述

  • 先读一行试试

赋值

  • 查看 readline 函数返回的类型

图片描述

  • 是一个字符串
    • 把他赋给一个变量 s
    • 然后输出 s

图片描述

  • 在 print(s)的时候
    • \n会被翻译成转义序列
    • 当做回车进行输出

重写

  • 重写oeasy.txt
    • 里面只写oeasy
    • 然后让在游乐园里面
    • 尝试和文件内容互动

图片描述

  • 为了避免缓存问题
    • 重新进入游乐园

互动

  • 重启游乐园之后
    1. 打开文件
    2. 读取文件第一行赋给 s_name
    3. 将"\n"替换为 空串
    4. 然后就可以输出🤩

图片描述

  • 更换一下文件内容试试
echo "Hello o2z !\nWelcome to file io." > oeasy.txt

更换

  • 重进游乐场

图片描述

  • 试验成功
  • 不要忘记关闭文件流
  • 这种把文件写死在程序源代码的方法叫做 hardcode
  • 很硬的把变量写死了
  • 这不是一个好主意
  • 可以来点交互
  • 动态决定打开哪个文件
  • 怎么交互呢?

输入

  • 如果我想通过键盘输入需要读取的文件名
  • 回忆一下键盘输入
    • input()
    • 把返回值赋给一个 s_file 变量

图片描述

  • 如果输入的是一个不存在的文件呢?
    • 比如当前目录并不存在的一个叫做 o9z.txt 的文件

报错

  • 找不到这个文件o9z.txt
    • 报了 Error
    • FileNotFoundError
    • 没有当然找不到

图片描述

  • 不过可能这 o9z.txt 不在当前目录
    • 在别的目录
    • 我还想打开他那怎么办呢?

总结

  • 这次研究了细水长流
    • 读取文件流
    • 一行一行流出来
    • 而且可以通过 input()函数
    • 动态选择具体打开的文件
  • 如果我要选择的文件不在当前目录怎么办呢?🤔
  • 下次再说 👋

  • 本文来自 oeasy Python 系统教程。
  • 想完整、扎实学 Python,
  • 搜索 oeasy 即可。