Skip to content

Latest commit

 

History

History
176 lines (122 loc) · 4.04 KB

418-190174-写入文件.sy.md

File metadata and controls

176 lines (122 loc) · 4.04 KB
show version enable_checker
step
1.0
true

写入文件

回忆

  • 上次读取了外部命令的结果
  • 可以得到
    • cowsay的动物
    • figlet的字体
    • 当前的进程
    • 所有的用户
    • 你还能想到什么?
  • 只要是shell能输出的东西
    • 就可以流到文件里
    • 然后用python给open了
    • 读取出来
  • open 函数有没有什么参数呢??🤔

帮助手册

  • help(open)

图片描述

  • 默认的模式是 rt
    • r - read - 读取
    • t - text - 文本
  • 另外有一种模式是 w
    • w - write - 写入

什么是模式

  • 模式就是一系列设定的套餐
  • 比如飞机可以开启
    • 对空模式
    • 对地模式
  • 格斗的拳手有
    • 进攻模式
    • 防御模式
  • 手机可以有
    • 正常模式
    • 静音模式
    • 飞行模式
  • 按我们来看看文件流的写模式

写入过程

  • 打开文件流
  • 把原来的文件内容清空
  • 准备写入
  • 关闭文件流

图片描述

打开并写入

  • 找一个原来有东西的文件

图片描述

  • 用写模式打开之后
  • 写一些东西他就告诉你写了几个字节
  • 写完了再关了
  • 然后再去读取
  • 原来的东西没有了
  • 新的东西进去了
  • 但是都在一堆
  • 可以有个回车啥的么?

回车

  • 先写

图片描述

  • 写好了没有?
  • 去 terminal 观察一下

观察文件

图片描述

  • 字符1对应 ascii码31
  • 字符2对应 ascii码32
  • 字符3对应 ascii码33

图片描述

再读

图片描述

  • 读到头之后
  • 还想从头再读怎么办?

seek

图片描述

  • seek 就像磁带倒带子
  • seek(0) 就是一直倒到头
  • 流水再从头流一次

图片描述

seek 的细节

图片描述

  • seek 不但可以倒到头
  • 也可以倒到任意指定的位置

图片描述

seek 的细节

  • help(f.seek)

图片描述

  • 第二个参数是 whence 模式
    • 0 - 从头开始 - 默认值 - 数值必须是 0 或正数
    • 1 - 从当前位置开始 - 数值可正可负
    • 2 - 从结束位置开始 - 数值一般为负
  • 我们来试试

seek - 从零开始

  • 默认是没有问题的

图片描述

  • 还可以用 tell 得到当前流的位置

图片描述

相对位置

  • seek 的时候报错了

图片描述

  • 报错是非常正常的!!!!
  • 需要解决这个问题
  • 搜索

搜索

图片描述

图片描述

  • 照这个说法需要转化为 2 进制的打开 mode 模式
  • 自己试试 rb 的话是否可以 whence=1?

总结

  • 这次我们真的写了文件
    • 这非常令人激动
    • 因为我可以用python语言写python程序了
    • 这就是代码自动化的起点!!!!
  • 方法是开启写模式
  • 现在已知两个模式
  • 读的时候还可以
    • seek 到指定的位置
    • tell 报位置
  • 写完了之后都需要一个close操作
  • 这close如何理解呢?🤔
  • 下次再说 👋