首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >python函数执行时间长,shell终端加载转圈动画

python函数执行时间长,shell终端加载转圈动画

作者头像
IT不难
发布2022-04-12 08:32:59
发布2022-04-12 08:32:59
1.2K0
举报
文章被收录于专栏:IT不难技术家园IT不难技术家园

前言

今天在写服务器测试脚本的过程中,自己用python调用shell脚本测试磁盘I/O,并输出测试结果。测试磁盘IO等待时间比较长,大约有10几分钟。因为远程ssh链接,长时间的等待,也不知道是不是网络中断了,于是想加一个加载动画。

一开始想加一个进度条,找了好多教程,写的都比较简单,一个for循环,然后输出进度条。折腾了半天感觉也不符合要求。

折腾了几个小时,总算搞定。在此记录一下。

功能代码

代码语言:javascript
复制
import _thread
import time

def loading(lock):
    """
    等待函数
    """
    chars = ['⣾', '⣷', '⣯', '⣟', '⡿', '⢿', '⣻', '⣽']
    i = 0
    print('')
    while lock[0]:
        i = (i+1) % len(chars)
        print('\033[A%s %s' %
              (chars[i], lock[1] or '' if len(lock) >= 2 else ''))
        time.sleep(0.25)
    print('')

使用

代码语言:javascript
复制
def get_result_by_shell(key, bashpath):
    """
    调用shell脚本获取数据
    """
    #显示执行动画...
    lock = [True, '正在获取:{}...'.format(key)]
    try:
        _thread.start_new_thread(loading, (lock,))
    except Exception as e:
        print(e)

    status, output = subprocess.getstatusoutput('bash {}'.format(bashpath))
    print(status)
    print(output)
  
    lock[0] = False

参考

Python控制台加载中转圈动画

本文共 192 个字数,平均阅读时长 ≈ 1分钟

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 功能代码
  • 使用
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档