[oeasy]python0034_回车_carriage_return_figlet_字体变大
回到开头
回忆上次内容
进程前后台切换
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"会如何呢?
尝试
import 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