[oeasy]python0035_ 整合shell编程_循环_延迟_清屏

简介: [oeasy]python0035_ 整合shell编程_循环_延迟_清屏

 

整合shell编程

回忆上次内容

    • \r
      • 可以让输出位置回到行首
      • 原位刷新时间
        • 如果想要的是大字符效果
          • 需要使用 figlet
          • 但同时还希望能刷新

            image.gif编辑

              • 这可能吗?🤔

              建立脚本

                • 我们得熟悉一下shell
                • 先新建一个test.sh
                  • vi test.sh

                    python3 show_time.py

                    python3 show_time.py

                    python3 show_time.py

                      • 看起来就是把这个内容输出了 3 次

                      image.gif编辑

                        • 可以执行么?

                        尝试执行

                          • 注意执行细节

                          image.gif编辑

                            • 在vim的正常状态用:w|!sh %执行
                              • :w 保存
                              • | 并且执行
                              • !sh % 用外部命令sh执行这个test.sh
                                • 注意这里使用的外部程序不是python
                                • 而是sh
                                • sh 就像 python3 是外部命令名
                                • % 代指test.sh
                                  • 就像以前的sleep.py
                                  • 是文件名

                                        image.gif编辑

                                          • 确实输出了三次时间
                                          • 但我还想把字变大怎么办呢?

                                          figlet变大

                                            • show_time.py 的输出字符串
                                              • 直接通过 管道| 给到 figlet
                                                • 其中
                                                  • show_time.py程序
                                                    • 只负责输出时间
                                                      • 输出的结果
                                                        • 通过管道|figlet
                                                          • figlet
                                                            • 负责变大

                                                                image.gif编辑

                                                                  • 如果想要输出三个变大之后的时间
                                                                  • 应该如何呢?

                                                                  三次输出

                                                                    • 修改test.sh
                                                                      • vi test.sh
                                                                      • 编写以下文件

                                                                        python3 show_time.py | figlet

                                                                        python3 show_time.py | figlet

                                                                        python3 show_time.py | figlet

                                                                          • 尝试运行

                                                                          image.gif编辑

                                                                            • 运行结果

                                                                            image.gif编辑

                                                                              • 确实变大了
                                                                                • 而且输出了三次
                                                                                  • 现在需要不只输出三次
                                                                                    • 而是无限多次不断刷新
                                                                                    • 应该怎么办呢?

                                                                                      尝试循环

                                                                                        • 无限多次肯定需要循环!
                                                                                        • 原来放在 python文件 中的的循环和定时功能
                                                                                          • 现在都需要放在 sh脚本 文件里
                                                                                          • shell 来控制延迟的节奏
                                                                                            • 那问题来了
                                                                                              • sh脚本文件 如何进行循环?

                                                                                                搜索一下!

                                                                                                image.gif编辑

                                                                                                image.gif编辑

                                                                                                  • 尝试根据这个修改

                                                                                                  shell循环

                                                                                                    • 在shell中
                                                                                                      • 新编辑一个loop.sh
                                                                                                      • vi loop.sh
                                                                                                        • 输入以下内容

                                                                                                        for a in {1..10}

                                                                                                        do

                                                                                                           echo $a

                                                                                                        done

                                                                                                          • 尝试运行此文件

                                                                                                          保存并运行

                                                                                                          image.gif编辑

                                                                                                            • :w 保存当前文档
                                                                                                            • :!sh %运行当前shell
                                                                                                            • :w|!sh %保存并运行当前shell
                                                                                                            • 执行的结果如下

                                                                                                            image.gif编辑

                                                                                                              • 成功循环了起来
                                                                                                              • 光是循环还不够
                                                                                                                • 还需要延迟
                                                                                                                  • 怎么办?

                                                                                                                  搜索延迟

                                                                                                                  image.gif编辑

                                                                                                                  for a in {1..10}

                                                                                                                  do

                                                                                                                     echo $a

                                                                                                                     sleep 1s

                                                                                                                  done

                                                                                                                  image.gif编辑

                                                                                                                    • :w|!sh %
                                                                                                                      • 保存并运行当前 shell
                                                                                                                        • 延迟成功
                                                                                                                          • 接下来需要输出时间了
                                                                                                                          • 而且是通过管道给 figlet 的大时间

                                                                                                                            整合 python

                                                                                                                              • 把原来数字的部分换成执行命令
                                                                                                                                • python3 show_time.py | figlet

                                                                                                                                  for a in {1..10}

                                                                                                                                  do

                                                                                                                                     python3 show_time.py | figlet

                                                                                                                                     sleep 1s

                                                                                                                                  done

                                                                                                                                    • 输出成功
                                                                                                                                      • 确实可以刷新
                                                                                                                                      • 但是一屏幕上
                                                                                                                                      • 有两个时间
                                                                                                                                        • 很乱!

                                                                                                                                        image.gif编辑

                                                                                                                                          • 我想只要一个!
                                                                                                                                            • 少则得多则惑!
                                                                                                                                              • 可以清一下屏幕么?

                                                                                                                                              尝试清屏

                                                                                                                                              image.gif编辑

                                                                                                                                              for a in {1..10}

                                                                                                                                              do

                                                                                                                                                 clear

                                                                                                                                                 python3 sleep.py | figlet

                                                                                                                                                 sleep 1s

                                                                                                                                              done

                                                                                                                                                • 先去总结一下

                                                                                                                                                总结

                                                                                                                                                  • 这次我们研究了shell脚本的编程
                                                                                                                                                  • 并且在shell中实现了
                                                                                                                                                    • 循环语句
                                                                                                                                                    • 延迟命令
                                                                                                                                                    • 清屏命令
                                                                                                                                                    • python命令
                                                                                                                                                    • figlet命令

                                                                                                                                                      image.gif编辑

                                                                                                                                                        目录
                                                                                                                                                        相关文章
                                                                                                                                                        |
                                                                                                                                                        3月前
                                                                                                                                                        |
                                                                                                                                                        数据采集 机器学习/深度学习 人工智能
                                                                                                                                                        Python:现代编程的首选语言
                                                                                                                                                        Python:现代编程的首选语言
                                                                                                                                                        286 102
                                                                                                                                                        |
                                                                                                                                                        3月前
                                                                                                                                                        |
                                                                                                                                                        数据采集 机器学习/深度学习 算法框架/工具
                                                                                                                                                        Python:现代编程的瑞士军刀
                                                                                                                                                        Python:现代编程的瑞士军刀
                                                                                                                                                        311 104
                                                                                                                                                        |
                                                                                                                                                        3月前
                                                                                                                                                        |
                                                                                                                                                        人工智能 自然语言处理 算法框架/工具
                                                                                                                                                        Python:现代编程的首选语言
                                                                                                                                                        Python:现代编程的首选语言
                                                                                                                                                        257 103
                                                                                                                                                        |
                                                                                                                                                        3月前
                                                                                                                                                        |
                                                                                                                                                        机器学习/深度学习 人工智能 数据挖掘
                                                                                                                                                        Python:现代编程的首选语言
                                                                                                                                                        Python:现代编程的首选语言
                                                                                                                                                        193 82
                                                                                                                                                        |
                                                                                                                                                        2月前
                                                                                                                                                        |
                                                                                                                                                        Python
                                                                                                                                                        Python编程:运算符详解
                                                                                                                                                        本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
                                                                                                                                                        179 3
                                                                                                                                                        |
                                                                                                                                                        2月前
                                                                                                                                                        |
                                                                                                                                                        数据处理 Python
                                                                                                                                                        Python编程:类型转换与输入输出
                                                                                                                                                        本教程介绍Python中输入输出与类型转换的基础知识,涵盖input()和print()的使用,int()、float()等类型转换方法,并通过综合示例演示数据处理、错误处理及格式化输出,助你掌握核心编程技能。
                                                                                                                                                        411 3
                                                                                                                                                        |
                                                                                                                                                        2月前
                                                                                                                                                        |
                                                                                                                                                        并行计算 安全 计算机视觉
                                                                                                                                                        Python多进程编程:用multiprocessing突破GIL限制
                                                                                                                                                        Python中GIL限制多线程性能,尤其在CPU密集型任务中。`multiprocessing`模块通过创建独立进程,绕过GIL,实现真正的并行计算。它支持进程池、队列、管道、共享内存和同步机制,适用于科学计算、图像处理等场景。相比多线程,多进程更适合利用多核优势,虽有较高内存开销,但能显著提升性能。合理使用进程池与通信机制,可最大化效率。
                                                                                                                                                        259 3
                                                                                                                                                        |
                                                                                                                                                        2月前
                                                                                                                                                        |
                                                                                                                                                        Java 调度 数据库
                                                                                                                                                        Python threading模块:多线程编程的实战指南
                                                                                                                                                        本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
                                                                                                                                                        256 0
                                                                                                                                                        |
                                                                                                                                                        3月前
                                                                                                                                                        |
                                                                                                                                                        数据采集 机器学习/深度学习 人工智能
                                                                                                                                                        Python:现代编程的多面手
                                                                                                                                                        Python:现代编程的多面手
                                                                                                                                                        81 0
                                                                                                                                                        |
                                                                                                                                                        3月前
                                                                                                                                                        |
                                                                                                                                                        存储 人工智能 算法
                                                                                                                                                        Python实现简易成语接龙小游戏:从零开始的趣味编程实践
                                                                                                                                                        本项目将中国传统文化与编程思维相结合,通过Python实现成语接龙游戏,涵盖数据结构、算法设计与简单AI逻辑,帮助学习者在趣味实践中掌握编程技能。
                                                                                                                                                        324 0

                                                                                                                                                        推荐镜像

                                                                                                                                                        更多