欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

實時獲取Python的print輸出流方法

 更新時間:2019年01月07日 10:31:46   作者:wangshuang1631  
今天小編就為大家分享一篇實時獲取Python的print輸出流方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

我的應(yīng)用場景是:使用shell執(zhí)行python文件,并且通過調(diào)用的返回值獲取python的標準輸出流。

shell程序如下:

cmd='python '$1' '$2' '$3' '$5' '$4
RESULT=eval $cmd
echo $RESULT

之前我的寫的python程序如下:

# coding: utf-8
import time
import json

def execute(_database, _parameter):
  print 'sleep start'
  sleepTime = 30
  print 'sleep ' , sleepTime , 'second.'
  time.sleep(sleepTime)
  print 'sleep done'
  testDic={'doneCode':0,'doneMsg':'Done','logList':'success'}
  return json.dumps(testDic, ensure_ascii=False)

if __name__ == "__main__":
  p = 'param'
  db = 'databsae'
  result = execute(db, p)
  print result

之后遇到的問題是shell不能實時的獲取python的print流,也就是說不是獲取第一條print語句之后,休眠了30秒之后才獲取最后一條print語句。

所有的print流在shell中都是一次性獲取的,這種情況對于執(zhí)行時間比較短的程序腳本沒什么影響,但是當(dāng)python程序需要執(zhí)行很長時間,而需要通過print流追蹤程序,就影響比較大。

通過查閱資料,可知:

當(dāng)我們在 Python 中打印對象調(diào)用 print obj 時候,事實上是調(diào)用了 sys.stdout.write(obj+'\n')

print 將你需要的內(nèi)容打印到了控制臺,然后追加了一個換行符

print 會調(diào)用 sys.stdout 的 write 方法

以下兩行在事實上等價:

sys.stdout.write('hello'+'\n')
print 'hello'

調(diào)用sys.stdout.flush()強制其“緩沖,這意味著它會寫的一切在緩沖區(qū)到終端,即使通常會在這樣做之前等待。

改動后程序如下:

# coding: utf-8
import time
import json
import sys
def execute(_database, _parameter):
  print 'time 1:',time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
  print 'sleep start.'
  for i in range(1,10):
    print 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:',i
    print 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb:',i*i
    print 'ccccccccccccccccccccccccccccccccccccccccccccccccccccccc:',i+i
    sys.stdout.flush()
    time.sleep(10)
  print 'sleep end '
  print 'time 2:',time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
  testDic={'doneCode':0,'doneMsg':'Done','logList':'success'}
  return json.dumps(testDic, ensure_ascii=False)

if __name__ == "__main__":
  p = 'param'
  db = 'database'
  result = execute(db, p)
  print result

以上這篇實時獲取Python的print輸出流方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Pycharm運行時總是跳出Python?Console問題

    Pycharm運行時總是跳出Python?Console問題

    這篇文章主要介紹了Pycharm運行時總是跳出Python?Console問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • LyScript實現(xiàn)Hook改寫MessageBox的方法詳解

    LyScript實現(xiàn)Hook改寫MessageBox的方法詳解

    LyScript可實現(xiàn)自定義匯編指令的替換功能。用戶可自行編寫匯編指令,將程序中特定的通用函數(shù)進行功能改寫與轉(zhuǎn)向操作,此功能原理是簡單的Hook操作。本文將詳細介紹Hook改寫MessageBox的方法,感興趣的可以了解一下
    2022-09-09
  • 對python numpy數(shù)組中冒號的使用方法詳解

    對python numpy數(shù)組中冒號的使用方法詳解

    下面小編就為大家分享一篇對python numpy數(shù)組中冒號的使用方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 一篇文章搞懂Python程序流程控制結(jié)構(gòu)

    一篇文章搞懂Python程序流程控制結(jié)構(gòu)

    這篇文章主要給大家介紹了關(guān)于Python程序流程控制結(jié)構(gòu)的相關(guān)資料,本節(jié)學(xué)習(xí)了Python程序的控制結(jié)構(gòu)之順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu),文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • pandas的Series類型與基本操作詳解

    pandas的Series類型與基本操作詳解

    這篇文章主要介紹了pandas的Series類型與基本操作詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 使用pandas或numpy處理數(shù)據(jù)中的空值(np.isnan()/pd.isnull())

    使用pandas或numpy處理數(shù)據(jù)中的空值(np.isnan()/pd.isnull())

    這篇文章主要介紹了使用pandas或numpy處理數(shù)據(jù)中的空值(np.isnan()/pd.isnull()),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 詳解python使用pip安裝第三方庫(工具包)速度慢、超時、失敗的解決方案

    詳解python使用pip安裝第三方庫(工具包)速度慢、超時、失敗的解決方案

    這篇文章主要介紹了詳解python使用pip安裝第三方庫(工具包)速度慢、超時、失敗的解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Python連接MySQL數(shù)據(jù)庫的四種方法

    Python連接MySQL數(shù)據(jù)庫的四種方法

    用?Python?連接到?MySQL?數(shù)據(jù)庫的方法不是很系統(tǒng),實際中有幾種不同的連接方法,而且不是所有的方法都能與不同的操作系統(tǒng)很好地配合,本文涵蓋了四種方法,你可以用它們來連接你的Python應(yīng)用程序和MySQL,需要的朋友可以參考下
    2024-08-08
  • 如何利用Python和matplotlib更改縱橫坐標刻度顏色

    如何利用Python和matplotlib更改縱橫坐標刻度顏色

    對于圖表來說最簡單的莫過于作出一個單一函數(shù)的圖像,下面這篇文章主要給大家介紹了關(guān)于如何利用Python和matplotlib更改縱橫坐標刻度顏色的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • python包相關(guān)知識點之包的導(dǎo)入、相對路徑以及絕對路徑

    python包相關(guān)知識點之包的導(dǎo)入、相對路徑以及絕對路徑

    Python的好處在于你不需要懂很多概念,你就有機會投入工作,同樣問題也有機會隨時發(fā)生,下面這篇文章主要給大家介紹了關(guān)于python包相關(guān)知識點之包的導(dǎo)入、相對路徑以及絕對路徑的相關(guān)資料,需要的朋友可以參考下
    2022-04-04

最新評論