show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次研究了操作文件
- 操作文件流分成三步
- 打开文件流
- 读取文件流
- 关闭文件流
- 读写文件
- 这文件流太猛了
- 一下子全出来了
- 咱能细水长流么?🤔
- 打开文件流
- f = open("oeasy.txt")
- 读取文件
- f.read()
- 关闭文件流
- f.close()
- 上次的问题是文件流太猛
- 一股脑全流出来了
- 这次想要细水长流
- 可以让文件流一行一行流出来
- 但是结尾那个
\n
怎么还原样显示呢? - 不应该是转移成回车么?
- 读出来的是什么类型的数据呢?
- 查看 readline 函数返回的类型
- 是一个字符串
- 把他赋给一个变量 s
- 然后输出 s
- 只有在 print(s)的时候
\n
才会被翻译成转义序列- 当做回车进行输出
- 重写
oeasy.txt
- 里面只写
oeasy
- 然后让在游乐园里面
- 尝试和文件内容互动
- 为了避免缓存问题
- 重启一下游乐园
- 重启游乐园之后
- 打开文件
- 读取文件第一行赋给 s_name
- s_name.replace("\n","")
- replace 的意思是替换
- 把 s_name 中的
\n
替换为空串
- 然后就可以根据文件内容进行输出了!🤩
- 更换一下文件内容试试
- 重进游乐场
- 试验成功
- 不要忘记关闭文件流
- 这种把文件写死在程序源代码的方法叫做 hardcode
- 很硬的把变量写死了
- 这不是一个好主意
- 可以来点交互
- 动态决定打开哪个文件
- 怎么交互呢?
- 如果我想通过键盘输入需要读取的文件名
- 回忆一下键盘输入
- input()
- 把返回值赋给一个 s_file 变量
- 如果输入的是一个不存在的文件呢?
- 比如当前目录并不存在的一个叫做 o9z.txt 的文件
- 找不到这个文件
o9z.txt
- 报了 Error
- FileNotFoundError
- 没有当然找不到
- 不过可能这 o9z.txt 不在当前目录
- 在别的目录
- 我还想打开他那怎么办呢?
- 这次研究了细水长流
- 读取文件流
- 一行一行流出来
- 而且可以通过 input()函数
- 动态选择具体打开的文件
- 如果我要选择的文件不在当前目录怎么办呢?🤔
- 下次再说 👋