最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中stdout輸出不緩存的設(shè)置方法

 更新時(shí)間:2014年05月29日 10:56:01   作者:  
這篇文章主要介紹了python中stdout輸出不緩存的設(shè)置方法,這個(gè)方法只在比較特殊的環(huán)境中使用,需要的朋友可以參考下

考慮以下python程序:

復(fù)制代碼 代碼如下:

#!/usr/bin/env python

import sys

sys.stdout.write("stdout1 ")
sys.stderr.write("stderr1 ")
sys.stdout.write("stdout2 ")
sys.stderr.write("stderr2 ")

其中的sys.stdout.write也可以換成print。
運(yùn)行這程序,你覺得會(huì)輸出什么?試驗(yàn)一下,就會(huì)發(fā)現(xiàn),其實(shí)輸出并不是
復(fù)制代碼 代碼如下:

stdout1 stderr1  stdout2 stderr2

而是:
復(fù)制代碼 代碼如下:

stderr1 stderr2 stdout1  stdout2

究其原因,是因?yàn)榫彺妫弘m然stderr和stdout默認(rèn)都是指向屏幕的,但是stderr是無緩存的,程序往stderr輸出一個(gè)字符,就會(huì)在屏幕上顯示一個(gè);而stdout是有緩存的,只有遇到換行或者積累到一定的大小,才會(huì)顯示出來。這就是為什么上面的會(huì)顯示兩個(gè)stderr的原因了。
然而,有時(shí)候,你可能還是希望stdout的行為和stderr一樣,能不能實(shí)現(xiàn)呢?當(dāng)然是可以的,而且對(duì)于python,實(shí)現(xiàn)起來還特別方便,以下是兩個(gè)方法:
復(fù)制代碼 代碼如下:

python -u stderr_stdout.py
PYTHONUNBUFFERED=1 python stderr_stdout.py

第一種方法是給python指定 -u 參數(shù),第二種方法是在python運(yùn)行時(shí),指定 PYTHONUNBUFFERED 環(huán)境變量,這兩種方法其實(shí)是等效的。
當(dāng)然,也可以在程序的第一行指定 #!/usr/bin/python -u 然后程序加可執(zhí)行權(quán)限來運(yùn)行,或者把 export PYTHONUNBUFFERED=1 寫到 .bashrc 里去。


附:stackoverflow上也有同學(xué)遇到類似問題,可以參考一下

地址:http://stackoverflow.com/questions/107705/python-output-buffering

被采納的代碼:

復(fù)制代碼 代碼如下:

class Unbuffered(object):
   def __init__(self, stream):
       self.stream = stream
   def write(self, data):
       self.stream.write(data)
       self.stream.flush()
   def __getattr__(self, attr):
       return getattr(self.stream, attr)

import sys
sys.stdout = Unbuffered(sys.stdout)
print 'Hello'

相關(guān)文章

  • Python實(shí)現(xiàn)提取XML內(nèi)容并保存到Excel中的方法

    Python實(shí)現(xiàn)提取XML內(nèi)容并保存到Excel中的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)提取XML內(nèi)容并保存到Excel中的方法,涉及Python針對(duì)xml文件的讀取、解析以及Excel文件的寫入、保存等相關(guān)操作技巧,需要的朋友可以參考下
    2018-09-09
  • PyCharm運(yùn)行bash腳本的實(shí)現(xiàn)

    PyCharm運(yùn)行bash腳本的實(shí)現(xiàn)

    本文主要介紹了PyCharm運(yùn)行bash腳本的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Python解決拋小球問題 求小球下落經(jīng)歷的距離之和示例

    Python解決拋小球問題 求小球下落經(jīng)歷的距離之和示例

    這篇文章主要介紹了Python解決拋小球問題 求小球下落經(jīng)歷的距離之和,涉及Python基于遞歸的數(shù)值計(jì)算相關(guān)操作技巧,需要的朋友可以參考下
    2018-02-02
  • python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(面向?qū)ο?

    python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(面向?qū)ο?

    這篇文章主要介紹了python實(shí)現(xiàn)面向?qū)ο蟀鎸W(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • python使用rabbitmq實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲示例

    python使用rabbitmq實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲示例

    這篇文章主要介紹了python使用RabbitMQ實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲的示例,需要的朋友可以參考下
    2014-02-02
  • 部署Django到阿里云服務(wù)器教程示例

    部署Django到阿里云服務(wù)器教程示例

    這篇文章主要介紹了部署Django到阿里云服務(wù)器教程示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • python局部賦值的規(guī)則

    python局部賦值的規(guī)則

    Python提出如下假設(shè):如果在函數(shù)體內(nèi)的任何地方對(duì)變量賦值,則Python將名稱添加到局部命名空間中。
    2013-03-03
  • Python編程中Python與GIL互斥鎖關(guān)系作用分析

    Python編程中Python與GIL互斥鎖關(guān)系作用分析

    GIL互斥鎖用來保護(hù)Python世界里的對(duì)象,防止同一時(shí)刻多個(gè)線程執(zhí)行Python字節(jié)碼,確保線程安全,但也導(dǎo)致Python線程無法利用多核CPU優(yōu)勢(shì),本文來探討Python將來是否有可能去除GIL
    2021-09-09
  • 詳解Python正則表達(dá)式re模塊

    詳解Python正則表達(dá)式re模塊

    這篇文章主要介紹了Python正則表達(dá)式re模塊,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Python實(shí)現(xiàn)自動(dòng)打開電腦應(yīng)用的示例代碼

    Python實(shí)現(xiàn)自動(dòng)打開電腦應(yīng)用的示例代碼

    這篇文章主要介紹了Python實(shí)現(xiàn)自動(dòng)打開電腦應(yīng)用的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04

最新評(píng)論

米林县| 定州市| 阿瓦提县| 宜春市| 长宁县| 资阳市| 滨州市| 宜春市| 萍乡市| 淅川县| 隆子县| 阜宁县| 滦平县| 吴旗县| 施秉县| 景宁| 山西省| 时尚| 汉中市| 浠水县| 乌拉特后旗| 威信县| 庄河市| 从江县| 武穴市| 喀喇沁旗| 温宿县| 朝阳市| 涿州市| 绥德县| 清丰县| 宿迁市| 石嘴山市| 资中县| 沁阳市| 怀宁县| 天等县| 故城县| 宿松县| 融水| 卢氏县|