當前位置:首頁 » 編程語言 » pythonstdout

pythonstdout

發布時間: 2022-06-09 06:14:49

python stdout 什麼用

標准輸出(sys.stdout)對應的操作就是print(列印)了,標准輸入(sys.stdin)則對應input(接收輸入)操作,標准錯誤輸出和標准輸出類似也是print(列印)。
python最基本的操作 - 列印:
print 1

其效果是把 1 寫在console(命令行)裡面讓你看。
實際上他的操作可以理解為:把console(命令行)作為一個板子,通過sys.stdout = console指定往console板子上寫東西(console是默認的,也就是說你不修改要往哪兒寫的話,就會默認往這寫),在print 1的時候,就是告訴python,我要寫1,然後python就會去sys.stdout所指定的板子里,也就是console(命令行)里寫上 1。
(標准錯誤輸出也是同樣的過程,你會發現當程序出錯時,錯誤信息也會列印在console裡面。)

其實只要一個對象具有write方法,就可以被當作「板子」,告訴sys.stdout去哪裡寫。
說道write方法,第一個想到的可能就是文件操作了。
f=open('log.txt','w')

想上面那樣聲明一個文件對象 f,此文件對象就擁有了write方法,就可以被用來當作標准輸出和保准錯誤輸出的板子。

f=open('log.txt','w')
__console__ = sys.stdout #把默認的「板子」 - 命令行做個備份,以便可以改回來

sys.stdout = f

print 1

sys.stdout = __console__
print 2

上面的操作,通過sys.stdout = f 指定列印時的板子改成了 f。所以在使用print的時候,不再是把1列印在命令行里,而是寫在了log.txt文件裡面。

後面又把板子改成了命令行,此時print 2就又把2列印到命令行了

⑵ 求python 中sys.stdout.write 和 print >> sys.stdout的區別,越詳細越好

下面應該可以解你的惑了:

print >> sys.stdout的形式就是print的一種默認輸出格式,等於print "%VALUE%"

看下面的代碼的英文注釋,是print的默認幫助信息

#coding=utf-8
importsys,os

list1Display=['1','2','3']
list2Display=['abc','def','rfs']
whilelist2Display!=[]:
#Printsthevaluestoastream,ortosys.stdoutbydefault.
#Optionalkeywordarguments:
#file:afile-likeobject(stream);defaultstothecurrentsys.stdout.
#sep:stringinsertedbetweenvalues,defaultaspace.
#end:,defaultanewline.
#print可以將值輸出到指定的輸出流(可以是文件句柄),若不指定,
#則輸出到stdout(標准輸出)
#一般我們使用的時候不加輸出定向符「>>」到輸出的file對象,本代碼中對象是stdout
#下面的print在stdout對象中每次輸出兩個值
print>>sys.stdout,list2Display.pop(),list1Display.pop()
os.system("pause")

上文中只演示了python2.x中的用法,2.x中的print無法指定end符號為其他值,默認會輸出一個" ",也就是用一次必定換到下一行,到了3.x中print成為了一個真正意義上的函數,後來就可以任意指定end符號的值,你可以輸出一次後末尾添加上任意你想要的值,而不是強制換行。



因此在2.x中若想實現輸出不換行,只能直接調用stdout對象的write方法了,下面也是一個實例,因為stdout沒有end這個符號這一說,輸出不會換行,因此如果你想同一樣輸出多次,在需要輸出的字元串對象裡面加上" ",就可以回到行首了。

#coding=utf-8
importsys,os
importtime
foriinrange(100):
time.sleep(.5)
sys.stdout.write("Filetransferprogress:[%3d]percentcomplete! "%i)
sys.stdout.flush()

體會一下,將上面的" "拿掉試試看,是不是不換行而直接輸出了?明白了么。很長一段時間內python都會停留在2.x的時代。

⑶ python標准輸出重定向stdout.py的意思

sys.stdout 默認就是輸出到控制台(console),print 默認的輸出也是 sys.stdout,所以輸出到控制台。
在 輸入B 那,做了上下文切換with open
,也就是把默認的輸出流指向到文件 out.log,
對應的代碼是: sys.stdout = self.out_new,這里 out_new -> out.log,out_old = console
所以就print 指向文件,而不是控制台了

離開語句時,執行 sys.stdout = self.out_old => sys.stdout = console,還原原來的默認輸入流

於是後面就輸出到默認的控制

⑷ python sys.stdout.write 是怎麼意思 怎麼用

sys.stdout 是標准輸出文件。write就是往這個文件寫數據。
合起來就是列印數據到標准輸出。

對初學者來說,和print功能一樣。

⑸ 【關於python】請問sys.stdout.flush()是什麼意思一般用在什麼地方

python的stdout是有緩沖區的,給你個例子你就知道了

importtime
importsys

foriinrange(5):
printi,
#sys.stdout.flush()
time.sleep(1)

這個程序本意是每隔一秒輸出一個數字,但是如果把這句話sys.stdout.flush()注釋的話,你就只能等到程序執行完畢,屏幕上會一次性輸出0,1,2,3,4。

如果你加上sys.stdout.flush(),刷新stdout,這樣就能每隔一秒輸出一個數字了。


可以用在網路程序中多線程程序,多個線程後台運行,同時要能在屏幕上實時看到輸出信息。

⑹ python sys.stdout.buffer.write什麼意思

sys是系統 stdout是標准輸出 buffer是緩沖區 write是寫 往標准輸出的緩沖區中寫東西

⑺ 請問一段Python代碼stdout=-12代表什麼意思

網頁鏈接

⑻ python stdout 什麼意思

指的是標本輸出,對於Python,是指控制台輸出,如下:

此外,你可以新建或者打開一個文件,將要輸出的內容輸出到文件內並保存,這是另一種輸出到文件的輸出。如:print("這是文件輸出!", file = print.txt)

⑼ python2 中from sys import stdout什麼意思

python從sys庫中導入stdout方法。
在Python中,文件對象sys.stdin、sys.stdout和sys.stderr分別對應解釋器的標准輸入、標准輸出和標准出錯流

熱點內容
c語言的列印函數 發布:2025-02-08 06:43:54 瀏覽:786
海康威視區域網訪問 發布:2025-02-08 06:41:16 瀏覽:964
html5移動端源碼下載 發布:2025-02-08 06:20:45 瀏覽:149
外網訪問黑群暉 發布:2025-02-08 05:45:59 瀏覽:562
中央存儲伺服器公司地址 發布:2025-02-08 05:38:48 瀏覽:822
伺服器如何查詢表空間的文件路徑 發布:2025-02-08 05:38:00 瀏覽:163
宏基4741g哪個配置好 發布:2025-02-08 05:37:56 瀏覽:811
混合料運輸車的配置是如何計算的 發布:2025-02-08 05:31:35 瀏覽:294
android紅包插件 發布:2025-02-08 05:31:34 瀏覽:366
ea伺服器怎麼連接 發布:2025-02-08 05:16:45 瀏覽:464