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

實(shí)時(shí)獲取Python的print輸出流方法

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

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

shell程序如下:

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

之前我的寫(xiě)的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

之后遇到的問(wèn)題是shell不能實(shí)時(shí)的獲取python的print流,也就是說(shuō)不是獲取第一條print語(yǔ)句之后,休眠了30秒之后才獲取最后一條print語(yǔ)句。

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

通過(guò)查閱資料,可知:

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

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

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

以下兩行在事實(shí)上等價(jià):

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

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

改動(dòng)后程序如下:

# 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

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

相關(guān)文章

  • Pycharm運(yùn)行時(shí)總是跳出Python?Console問(wèn)題

    Pycharm運(yùn)行時(shí)總是跳出Python?Console問(wèn)題

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

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

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

    對(duì)python numpy數(shù)組中冒號(hào)的使用方法詳解

    下面小編就為大家分享一篇對(duì)python numpy數(shù)組中冒號(hào)的使用方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    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),文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • pandas的Series類(lèi)型與基本操作詳解

    pandas的Series類(lèi)型與基本操作詳解

    這篇文章主要介紹了pandas的Series類(lèi)型與基本操作詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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()),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 詳解python使用pip安裝第三方庫(kù)(工具包)速度慢、超時(shí)、失敗的解決方案

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

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

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

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

    如何利用Python和matplotlib更改縱橫坐標(biāo)刻度顏色

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

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

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

最新評(píng)論