欢迎光临散文网 会员登陆 & 注册

[oeasy]python0034_回车_carriage_return_figlet_字体变大

2022-12-28 15:54 作者:oeasy  | 我要投稿

回到开头

回忆上次内容

  • 进程前后台切换

    • fg %1 可以把指定的任务切回前台

    • ctrl+z把当前进程切换到后台并暂停

    • jobs 查看所有作业

    • fg 可以把后台进程再切回前台

    • bg 可以让进程在后台运行

  • 进程查询

    • ps -elf 查看所有进程信息

    • ps -lf 查看本终端相关进程信息

    • kill -9 PID 给进程发送死亡信号

    • pstree -h 可以查看进程树

  • 运行多个 python3 show_time.py 的话

    • 各个进程独立

    • python3 show_time.py 大概 7M

    • 各占内存

  • 这个切进程很好用

    • 不过运行进程的时候总是满屏刷时间

  • 可以固定在屏幕的某个位置刷新时间吗?🤔

回到从头

  • 我们重新去游乐场

    • \n是我们熟悉的转义字符

    • 我们先复习一下\n

  • 这次把 \n 换成 \r

    • 怎么办呢?

    • \r的作用是回到行头

    • 如果原来输出的字符串比新的长

return

  • \r

    • 回车return

    • 只负责回到行头

    • 不换行

  • 过程

    • 先输出abcdef

    • 然后回到行头

    • 再输出123

    • 结果就是123def

  • 不要翻篇

    • 自己尝试修改show_time.py

    • 让输出时间固定在一行

结合程序

  • 这个程序和 sleep 的结合很简单

    • 换成 end=""

    • 只需要把输出的字符串前面加上\r

    • 并且把结尾默认的 end="\n"

  • 试验成功

    • 真的定在那儿刷新了

突发奇想

  • 如果我把结束符设置为"\r"会如何呢?

尝试

#!usr/bin/python3import timewhile True:    print(time.asctime(),end='\r')    time.sleep(1)

  • 想到就去试试

  • 果然

    • 不出所料

    • 都给删除了

  • 没事

    • 试了

    • 也就快乐了

新问题

  • 还有就是字有点小

    • 可以变大么?

  • 要清清楚楚看报时

字体变大

#安装figletsudo apt install figlet#运行figletfiglet "oeasy"#利用管道使用figletecho "oeasy" | figlet

  • 尝试使用

  • 为什么可以变大呢?

寻找原理

  • figlet有专门的大字体字库

    • 通过映射可以将字体变大

打开字形库

  • 把具体的ascii字符

    • 映射到更大的字符组合上

  • 这些字形库的次序是如何的呢?

字形次序

  • 对比左右组

  • 次序是按照ascii码表的次序

管道原理

  • 管道运算符 |

    • 就是水管子

  • 管子接好了

    • 水怎么流呢?

流动

  • 把 echo "oeasy"的输出结果

    • 当做 figlet 的输入参数

    • 再进行输出

  • 这有点亚文化啊 😄

文艺起来

  • 可以写一些关于青春、励志、爱情的句子

    • 就更亚文化了😄

  • figlet 有别的字体么?

figlet 字体

  • 控制字体

    • -f

  • 实际效果

  • 还有什么可以控制吗?

位置控制

  • 控制左中右

    • -r、-c、-l

  • 现在尝试把show_time.py整合进来

    • show_time.py 的结果

    • 通过管道流到 figlet

尝试整合

  • 运行失败了

  • 我想先把那个\r去掉

    • 但是还是不行

    • 循环和延迟都阻碍往管道里送东西

    • 只能只保留输出再试试

#!/usr/bin/python3import timeprint(time.asctime())

  • 把原来show_time.py文件修改了

    • 循环延迟都删除了

    • 只纯纯输出时间

最终

  • 保存并退出

  • 在shell里运行

    • python3 show_time.py

  • 在shell里面输出重定向

    • python3 show_time.py | figlet

输出

  • 输出是可以的

    • 但是不会刷新

    • 而且太大了

    • 超过一行了

  • 不过至少可以出现一次时间了

总结

  • \r

    • 可以让输出位置回到行首

    • 原位刷新时间

  • 如果想要的是大字符效果

    • 需要使用 figlet

    • 但同时还希望能刷新

  • 这可能吗?🤔

  • 我们下次再说!👋

  • 蓝桥->https://www.lanqiao.cn/courses/3584

  • github->https://github.com/overmind1980/oeasy-python-tutorial

  • gitee->https://gitee.com/overmind1980/oeasypython

  • 视频->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy



[oeasy]python0034_回车_carriage_return_figlet_字体变大的评论 (共 条)

分享到微博请遵守国家法律