回到开头

回忆上次内容

  • 进程前后台切换

    • ctrl + z 把当前进程切换到后台并暂停
    • jobs 查看所有作业
    • fg 可以把后台进程再切回前台

      • fg %1 可以把指定的任务切回前台
    • 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 的结合很简单

    • 只需要把输出的字符串前面加上\r
    • 并且把结尾默认的 end="\n"

      • 换成 end=""

编辑

  • 试验成功

    • 真的定在那儿刷新了

突发奇想

编辑

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

尝试

#!usr/bin/python3
import time
while True:
print(time.asctime(),end='\r')
time.sleep(1)
  • 想到就去试试

编辑

  • 果然

    • 不出所料
    • 都给删除了
  • 没事

    • 试了
    • 也就快乐了

新问题

  • 还有就是字有点小

    • 可以变大么?

编辑

  • 要清清楚楚看报时

字体变大

#安装figlet
sudo apt install figlet
#运行figlet
figlet "oeasy"
#利用管道使用figlet
echo "oeasy" | figlet
  • 尝试使用

编辑

  • 为什么可以变大呢?

寻找原理

编辑

  • figlet有专门的大字体字库

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

打开字形库

  • 把具体的ascii字符

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

编辑

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

字形次序

  • 对比左右组

编辑

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

管道原理

  • 管道运算符 |

    • 就是水管子

编辑

  • 管子接好了

    • 水怎么流呢?

流动

  • 把 echo "oeasy"的输出结果

    • 当做 figlet 的输入参数
    • 再进行输出

编辑

  • 这有点亚文化啊

文艺起来

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

    • 就更亚文化了

编辑

  • figlet 有别的字体么?

figlet 字体

  • 控制字体

    • -f

编辑

  • 实际效果

编辑

  • 还有什么可以控制吗?

位置控制

  • 控制左中右

    • -r、-c、-l

编辑

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

    • show_time.py 的结果
    • 通过管道流到 figlet

尝试整合

  • 运行失败了

编辑

  • 我想先把那个\r去掉

    • 但是还是不行
    • 循环和延迟都阻碍往管道里送东西
    • 只能只保留输出再试试
#!/usr/bin/python3
import time
print(time.asctime())
  • 把原来show_time.py文件修改了

    • 循环延迟都删除了
    • 只纯纯输出时间

最终

编辑

  • 保存并退出
  • 在shell里运行

    • python3 show_time.py
  • 在shell里面输出重定向

    • python3 show_time.py | figlet

输出

  • 输出是可以的

    • 但是不会刷新
    • 而且太大了
    • 超过一行了

编辑

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

总结

  • \r

    • 可以让输出位置回到行首
    • 原位刷新时间
  • 如果想要的是大字符效果

    • 需要使用 figlet
    • 但同时还希望能刷新

编辑

[oeasy]python0033_回车_carriage_return_figlet_字体变大的更多相关文章

  1. CSS: 首字母字体变大时下划线不对齐的解决方法

    昨天在写2017年百度ife任务六的时候遇到了一个排版问题,需要首字母字体变大的同时,下划线对齐. 首先使用了 ::first-letter伪元素的选择器,将字体变大后,发现下划线没法对齐,代码如下: ...

  2. Response.Write()方法响应导致页面字体变大的解决办法

    关于ASP.NET中用Response.Write()方法响应导致页面字体变大的解决办法     最近研究了ASP.NET,发现一个问题,比方说在页面里面有个Button,要点击以后要打开新窗口,而且 ...

  3. 解决UC手机字体变大的有关问题

    解决UC手机字体变大的问题 UC手机浏览器在识别到页面文字很多的情况下会自动放大字体优化阅读体验,如果要关闭这个功能需要在网页头部添加: <meta name="wap-font-sc ...

  4. 移动端H5页面开发,碰到一个字体变大的BUG

    移动端H5页面开发,碰到一个字体变大的BUG webkit内核下,对不定高宽的元素可能会放大其字体.那么,就可以设置一个max-width:或者使用-webkit-text-size-adjust: ...

  5. html标签被div嵌套页面字体变大的解决办法

    html标签被div嵌套页面字体变大的解决办法 <div> <html> <head> <title></title> </head& ...

  6. 关于windows系统DPI增大导致字体变大的原因分析

    最近再学习WPF开发,其中提到一个特性“分辨率无关性”,主要功能就是实现开发的桌面程序在不同分辨率的电脑上显示时,会根据系统的DPI自动进行UI的缩放,从而不会导致应用程序的失真. 这个里面就提到了个 ...

  7. 【技术贴】xp任务栏字体变大变小

    今天远程到服务器上,发现任务栏字体变小了,百度了很久,发现百度就是个渣渣,什么答案都搜不到.就自己摸索了一下. 方法一: 桌面右击属性-外观-字体大小, 下拉匡 方法二 :桌面右击[属性]-[外观]- ...

  8. PDF通过剪裁来实现打印字体变大

    之前打印论文,很多都是一页两版,这个时候字体会非常小:打印缩放放大后,字又容易出了打印边界. 这种情况可以采用Adobe IX Pro(只要是pro应该都可以)进行边缘裁剪来实现字体放大.只需要剪裁( ...

  9. 将Eclipse中文注释字体变大方法

    今天下了最新的eclipse玩,结果发现注释变得灰常小,差点看瞎哥24K氪金狗眼 于是在网上找了找解决方法,结果都不对 最后自己试出来了... 方法:  Window --> Preferenc ...

  10. 安卓app中嵌入一个H5页面,当手机系统设置字体变大时,如何使H5页面的字体不会随用户自己调整的系统字体变化而变化?

    webview.getSettings().setTextZoom(100);WebView加上这个设置后,WebView里的字体就不会随系统字体大小设置发生变化了. https://segmentf ...

随机推荐

  1. npm创建项目

    创建项目 创建项目目录 首先新建一个文件夹,这里存放着我们的项目. 创建项目文件 这里不使用任何项目模板,相当于使用空模板. 进入这个文件夹,再cmd中运行npm init. 然后按照提示输入pack ...

  2. 添加身份认证和鉴权方案-使用jwtbearer

    HTTP身份认证框架 RFC 7235 定义了一个 HTTP 身份验证框架,服务器可以用来质询(challenge)客户端的请求,客户端则可以提供身份验证凭据. 服务端开启了身份认证后.如果客户端访问 ...

  3. Jenkins自动化集成

    gitlab连接Jenkins 创建token后 , 现在的网页上就会出现一个token: token只出现一次,注意保存 将这个token在Jenkins上配置,现在开始配置Jenkins Jenk ...

  4. 《iOS面试之道》-勘误2

    一.如何保证NSTimer不受Runloop的影响,准时触发 书中提到两种方案, 一种是改变timer加入到runloop中的Mode,为CommonModes不受Runloop的Mode影响 第二种 ...

  5. NOIP模拟53

    我在时光斑驳深处,聆听到花开的声音. 前言 这套题好像是随便拼接起来的,来自三套不同的题,最后一道还是学长出的(nb 场上为数不多的几次死磕一道题正解,大概有三个小时吧(惭愧,前两个小时看错题了,一直 ...

  6. C#笔记(1)窗体

    1. 隐藏TabPage 在使用TabControl控件时,希望隐藏其中某个选项卡(即TabPage).设置该TabPage的父容器为null 即可,如TabPage.Parent = null .如 ...

  7. Github 如何查看自己的 star 和 fork

    最近在 github 上看到偶尔有几个项目被 fork,心里也是挺开心的,但是查看项目的 fork 和 star,网上没有一个具体的教程,都是一个模板各种抄,本文就详细介绍如何查看. 查看 fork ...

  8. React事件处理 事件绑定 事件对象

    React 元素的事件处理和 DOM 元素的很相似,但是有一点语法上的不同: React 事件的命名采用小驼峰式,而不是纯小写. onClick  onChange 使用 JSX 语法时你需要传入一个 ...

  9. Nodejs概述 安装Nodejs os模块 path模块 url模块 querystring模块

    一.Nodejs概述 介绍 相关网址: https://nodejs.org/zh-cn/ http://nodejs.cn/ Node.js 是一个开源与跨平台的JavaScript 运行时环境.它 ...

  10. kettle从入门到精通 第六十五课 ETL之kettle 执行动态SQL语句,轻松实现全量&增量数据同步

    本次课程的逻辑是同步t1表数据到t2表,t1和t2表的表机构相同,都有id,name,createtime三个字段. CREATE TABLE `t1` ( `id` bigint NOT NULL ...