python實現簡單的UI交互

請添加圖片描述

文章目錄

  • 1. 基礎打印 + 覆蓋同一行
  • 2. 多行動畫效果
  • 3. 彩色文本(Windows/macOS/Linux)
  • 4. 輸入交互
  • 5. 異步輸入與非阻塞顯示
  • 6. 高級控制臺 UI 庫


可以通過控制臺打印實現簡單的「偽UI交互」,尤其適合展示進度、動態文本或輕量級狀態反饋。以下是幾種常見方法及示例:


1. 基礎打印 + 覆蓋同一行

\r 實現覆蓋當前行內容(無需換行),適合顯示動態進度。

import time
import sysfor i in range(101):# \r 將光標移動到行首,覆蓋之前的輸出sys.stdout.write(f"\r進度: [{'=' * i}{' ' * (100 - i)}] {i}%")sys.stdout.flush()  # 立即刷新輸出緩沖區time.sleep(0.05)
print("\n完成!")  # 換行結束

效果:
進度: [================================================== ] 50%


2. 多行動畫效果

通過清屏或移動光標實現多行動態效果(需 os 模塊支持)。

import time
import osdef clear_console():os.system('cls' if os.name == 'nt' else 'clear')while True:clear_console()print("=== 動態信息 ===")print("1. 當前任務: 數據處理中...")print("2. 進度: 75%")print("3. 剩余時間: 10秒")time.sleep(1)# 按 Ctrl+C 退出循環

3. 彩色文本(Windows/macOS/Linux)

使用 colorama 庫(跨平臺彩色輸出)增強可讀性。

# 安裝庫:pip install colorama
from colorama import Fore, Back, Style
import timeprint(Fore.GREEN + "開始處理...")
time.sleep(1)
print(Back.YELLOW + Fore.BLACK + "警告:內存占用過高!")
time.sleep(1)
print(Style.RESET_ALL + "操作完成。")  # 重置顏色

效果:
綠色文字 → 黃底黑字警告 → 重置后默認顏色。


4. 輸入交互

通過 input() 獲取用戶輸入,但會阻塞線程直到輸入完成。

name = input("請輸入你的名字: ")
print(f"你好, {name}!")

5. 異步輸入與非阻塞顯示

結合 threading 實現「邊輸入邊顯示進度」(需處理線程同步)。

import threading
import timedef background_task():for i in range(5):print(f"\r后臺任務進度: {i+1}/5", end="")time.sleep(1)print("\r后臺任務完成!")# 啟動后臺線程
thread = threading.Thread(target=background_task)
thread.start()# 主線程繼續接收輸入
name = input("請輸入你的名字: ")
print(f"你好, {name}! 后臺任務已結束。")

6. 高級控制臺 UI 庫

如果需要更復雜的交互(如菜單、表格),可使用專用庫:
? rich: 支持富文本、表格、進度條等(GitHub)

? curses: 終端圖形庫(需手動處理布局)

使用 rich 示例:

# 安裝庫:pip install rich
from rich.progress import track
import timefor _ in track(range(100), description="處理中..."):time.sleep(0.05)

效果:
帶進度條、描述文字和自動更新的控制臺界面。


優缺點對比

方法優點缺點
基礎打印覆蓋無需任何庫,兼容所有環境無法復雜布局,依賴回車覆蓋
多行動畫可展示更多信息需清屏操作,可能閃爍
彩色文本提升可讀性Windows 需額外配置
輸入交互簡單直接阻塞線程,無法同時顯示動態內容
rich 等庫功能強大,界面美觀需安裝第三方庫

適用場景
? 簡單進度反饋:用 \r 覆蓋或 rich.progress

? 命令行工具:用 input()print() 組合。

? 監控類腳本:多行動畫 + 定時刷新。

? 需要美觀輸出:直接使用 richcolorama

如果需要真正的交互式 UI(如按鈕、窗口),仍需使用 Tkinter/PyQt 等 GUI 框架。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/77182.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/77182.shtml
英文地址,請注明出處:http://en.pswp.cn/web/77182.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AI與思維模型【77】——PDCA思維模型

一、定義 PDCA思維模型是一種用于持續改進和優化工作流程、項目實施以及問題解決的科學管理方法。它由四個英文字母組成,分別代表計劃(Plan)、執行(Do)、檢查(Check)和處理(Act&…

10天學會嵌入式技術之51單片機-day-3

第九章 獨立按鍵 按鍵的作用相當于一個開關,按下時接通(或斷開),松開后斷開(或接通)。實物圖、原理圖、封裝 9.2 需求描述 通過 SW1、SW2、SW3、SW4 四個獨立按鍵分別控制 LED1、LED2、LED3、LED4 的亮…

vite+vue2+elementui構建之 package.json

webpack版本太低,構建依賴太多,頭大。 各種查閱資料,弄了一份直通構建vite構建elementUi核心文件, 構建基于開源若依vue2vue3版本改造,感謝開源,感謝若依。 vitevue2elementui構建之 vite.config.js-CSD…

提升變電站運維效率:安科瑞無線測溫系統創新應用

一、引言 變電站作為電力系統的關鍵樞紐,承擔著變換電壓、分配電能以及控制電力流向等重要任務。在變電站的運行過程中,電氣設備的接點溫度監測至關重要。過熱問題可能由多種因素引發,如電阻過大、接頭質量欠佳、銜接不緊密、物理老化等&…

DMA的三種傳輸功能

①內存到內存 #include "dma.h" #include "stdio.h"#define BUF_SIZE 16uint32_t src_buf[BUF_SIZE] {0x00000000,0x11111111,0x22222222,0x33333333,0x44444444,0x55555555,0x66666666,0x77777777,0x88888888,0x99999999,0xAAAAAAAA,0xBBBBBBBB,0xCCCCCCC…

【MySQL】MySQL 表的增刪改查(CRUD)—— 下篇(內含聚合查詢、group by和having子句、聯合查詢、插入查詢結果)

目錄 1. 插入查詢結果 2 聚合查詢 (行與行之間運算) count 計算查詢結果的行數 sum 求和 avg 求平均值 max 最大值 min 最小值 【小結】 3. group by 子句 分組 where 條件 having 條件 4. 聯合查詢(多表查詢) 內連接…

“思考更長時間”而非“模型更大”是提升模型在復雜軟件工程任務中表現的有效途徑 | 學術研究系列

作者:明巍/臨城/水德 還在為部署動輒數百 GB 顯存的龐大模型而煩惱嗎?還在擔心私有代碼庫的安全和成本問題嗎?通義靈碼團隊最新研究《Thinking Longer, Not Larger: Enhancing Software Engineering Agents via Scaling Test-Time Compute》…

電腦屏幕錄制軟件Captura源碼編譯(Win10,VS2022)

屏幕錄像的意義: 教育教學方面 制作教學資源:教師可以通過錄制屏幕來制作教學視頻,演示軟件操作、講解復雜的知識點等。學生可以隨時觀看這些視頻,便于復習和鞏固知識,尤其對于一些抽象的概念或難以在課堂上一次性掌握…

記一次調用大華抓拍SDK并發優化

目錄 一、問題分析 二、解決思路 三、貼代碼 四、總結 一、問題分析 按慣例上問題: 設備告警采用高電平持續模式:一次開,不主動關就一直處于告警狀態。 并發時多個請求下發 setDVRAlarmOutConfig,導致狀態混亂。 “開 -&g…

Python圖像變清晰與銳化,調整對比度,高斯濾波除躁,卷積銳化,中值濾波鈍化,神經網絡變清晰

本次使用圖片來源于百度 import cv2 import time import numpy as np import pywtfrom PIL import Image, ImageEnhance#-i https://pypi.mirrors.ustc.edu.cn/simpledef super_resolution(input_path, output_path, model_path, scale4):# 初始化超分辨率模型sr cv2.dnn_su…

12個HPC教程匯總!從入門到實戰,覆蓋分子模擬/材料計算/生物信息分析等多個領域

在科學研究、工程仿真、人工智能和大數據分析等領域,高性能計算 (High Performance Computing, HPC) 正扮演著越來越重要的角色。它通過并行處理、大規模計算資源的整合,極大提升了計算效率,使原本耗時數日的任務能夠在數小時內完成。 隨著計…

使用Autocannon.js進行HTTP壓測

目錄 一、為什么選擇Autocannon? 二、五分鐘快速上手 1. 環境準備 2. 發起首個壓測 3. 解讀測試報告 三、高階場景實戰 場景1:POST請求壓測 場景2:階梯式壓力測試 場景3:編程式集成測試 四、結果深度分析指南 1. 延遲分…

pnpm install報錯:此系統上禁止運行腳本

依賴安裝 報錯信息: pnpm : 無法加載文件 C:\Users\XXX\AppData\Roaming\npm\pnpm.ps1,因為在此系統上禁止運行腳本。有關詳細信息,請參閱 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Execution_Policies。 所在位置 行:1 …

第9章 多模態大語言模型

??????第1章 對大型語言模型的介紹第2章 分詞和嵌入第3章 解析大型語言模型的內部機制第4章 文本分類第5章 文本聚類與主題建模第6章 提示工程第7章 高級文本生成技術與工具第8章 語義搜索與檢索增強生成第10章 構建文本嵌入模型第11章 面向分類任務的表示模型微調第12章…

Python 繪圖代碼解析:用 Turtle 和 Colorsys 打造絢麗圖案

注:本文為作者原創文章,未經許可禁止轉載。 Python 繪圖代碼解析:用 Turtle 和 Colorsys 打造絢麗圖案 在 Python 的世界里,有許多有趣的庫可以用來創造精美的圖形。今天,我們就來詳細剖析一段使用turtle庫和colorsys庫的代碼,看看它是如何繪制出獨特圖案的。 一、庫的導…

RTMP 入門指南

1. RTMP 基礎概念?? ??核心角色??: ??推流端(Publisher)??:將音視頻數據推送到服務器的設備(如OBS、手機APP)。??服務器(RTMP Server)??:接收推流并分發給…

Java Stream流 常用方法

Map 修改 用于修改集合里的值 public void findData(){ArrayList<String> list new ArrayList<>();list.add("張三");list.add("李四");List<String> collect list.stream().map(s -> s "a").collect(Collectors.toLi…

巧記英語四級單詞 Unit5-上【曉艷老師版】

count 數&#xff0c; counter n.計算器&#xff0c;柜臺 a.相反的 數數的東西就是計算器&#xff0c;在哪數&#xff0c;在柜臺里面數&#xff1b;你和售貨員的關系就是相反的(一個買貨&#xff0c;一個賣貨account n.賬戶&#xff0c;賬號 一再的數accountant n.會計 一再的…

Git多人協作與企業級開發模型

目錄 1.多人協作一 2.多人協作二 3.遠程分?刪除后&#xff0c;本地gitbranch-a依然能看到的解決辦法 4.企業級開發模型 4.1.Git的重要性 4.2.系統開發環境 4.3.Git 分?設計規范 1.多人協作一 ?前&#xff0c;我們所完成的?作如下&#xff1a; 基本完成Git的所有本…

大眾點評 mtgsig1.2 分析 mtgsig

聲明 本文章中所有內容僅供學習交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包內容、敏感網址、數據接口等均已做脫敏處理&#xff0c;嚴禁用于商業用途和非法用途&#xff0c;否則由此產生的一切后果均與作者無關&#xff01; 逆向過程 部分代碼 params[yodaRead…