python:動態不刷螢幕輸出python/shell實現
前言
後臺執行程式有一種需求,比如檢視當前進度,想在終端看到某個值的變化情況:
先提供一種很土的辦法,把進度落地檔案為 例如 process,採用建立寫的方式。然後可以使用watch -n 1 cat process來檢視進度。
這裡提供兩種方式,python和shell
shell版本,如下(附帶一個進度條的例子)
#! /bin/bash
for ((i=0; $i<=100; i+=1))
do
printf "progress: [%-100s] %d%%
" "xxxxxxxxxx xxx xxx" $i
sleep 1
done
function sleepPrograss(){
[ $# -eq 0 ] && echo "sleepPrograss Usage: sleepPrograss 10 "
[ $# -eq 0 ] && return 1
allTime=$1
strDone=``
stepTime=$(echo "scale=1; $allTime/100" | bc)
for ((i=0; $i<=100; i+=1))
do
printf "progress: [%-100s] %d%%
" $strDone $i
sleep $stepTime
strDone+=`#`
done
echo
}
python版本,如下(附一個多執行緒輸出進度的例子)
基礎用法示例
#! /usr/bin/env python
import os
import sys
import time
while 1:
os.write(1, "
[%.3f]" % time.time())
sys.stdout.flush()
time.sleep(1)
子執行緒完成自己的任務,主執行緒跟蹤執行進度。
** 小編推薦一個學python的學習qun 740322234
無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多幹貨和技術資料分享!
**
#! /usr/bin/env python
# -*- coding: utf-8 -*-
```
@filename : demo.py
@authors : U{peterguo<mailto: peterguo@tencent.com>}
@copyright: tencent
@date : 2012-11-15
@version : 1.0.0.1
```
import os
import sys
import time
import thread
g_nTotal = 100
g_nProcessed = 0
g_fStartTime = time.time()
def simpleThdreadFun(interval):
global g_nProcessed
global g_nTotal
while g_nTotal > g_nProcessed:
time.sleep(interval)
g_nProcessed += 1
thread.exit_thread()
def test():
global g_nTotal
global g_nProcessed
global g_fStartTime
g_fStartTime = time.time()
thread.start_new_thread(simpleThdreadFun, (1,))
thread.start_new_thread(simpleThdreadFun, (2,))
thread.start_new_thread(simpleThdreadFun, (3,))
thread.start_new_thread(simpleThdreadFun, (4,))
while True:
time.sleep(0.5)
fRunTime = time.time() - g_fStartTime
nLeftNum = g_nTotal - g_nProcessed
fLeftTime = fRunTime * nLeftNum / (g_nProcessed + 0.1)
fPrograss = 100.0 * g_nProcessed / g_nTotal
os.write(1, "
LeftTime[%.3f] LeftNum[%d] Progress[%.3f %% (%d/%d) ]" %
(fLeftTime, nLeftNum, fPrograss, g_nProcessed, g_nTotal))
sys.stdout.flush()
if g_nTotal <= g_nProcessed:
break
print "
Test Done, use %.3f seconds" % (time.time() - g_fStartTime)
if __name__==`__main__`:
test()
相關文章
- Python 輸出不換行Python
- sqlplus中設定在螢幕中上不列印出輸出SQL
- python怎麼不轉行輸出Python
- Python網頁截圖/螢幕截圖/截長圖如何實現?Python網頁
- 5行Python程式碼就能實現刷爆全網的動態條形圖!Python
- 教你用Python實現全自動刷網課Python
- (轉)螢幕輸入輸出的一些屬性
- 動態改變螢幕設定 (轉)
- iOS 螢幕錄製實現iOS
- SAP ABAP 報表螢幕輸入欄位如何實現聯動效果試讀版
- Android動態控制手機螢幕方向Android
- 動態隱藏/顯示選擇螢幕
- linux shell實現動態時鐘Linux
- python實現:輸入2個整形數字,輸出最大值Python
- oled螢幕不卡方案
- selenium實現螢幕截圖
- QT擷取螢幕的實現QT
- Python 輸入和輸出Python
- Python的輸入輸出Python
- python 實現計算器功能 輸入字串,輸出相應結果Python字串
- IHS Markit:汽車用螢幕出貨首次出現衰退
- ABAP選擇螢幕:根據使用者選擇動態顯示螢幕(轉老宋)
- cad動態輸入框不見了 cad動態輸入框怎麼調出來
- CSS 讓滾動條不佔用螢幕寬度CSS
- 如何實現共享螢幕標註功能?
- android 螢幕圓角實現方法Android
- VC實現螢幕變暗效果 (轉)
- Python輸入和輸出(IO)Python
- python ----輸入輸出 變數Python變數
- python 標準輸入輸出Python
- Python一行輸出不顯示的問題Python
- python怎樣實時輸出時間Python
- Python動態規劃實現虛擬機器部署Python動態規劃虛擬機
- 聖誕螢幕下雪動態效果Xmas snow for macMac
- python 輸出顏色Python
- Python輸出日誌Python
- python輸出hello worldPython
- python 輸出重定向Python