2017-05-29 207 views
1

我是python的新手,並且在交互式shell上工作。我正在嘗試python標準庫,我從stdin.read()返回一個字符串參數的文檔中讀取。 但是,當我繼續並打印變量存儲輸入值時,它會顯示一個隨機字符。困惑它的意思sys.stdin.read()在Python中返回的是什麼?

>>>input=sys.stdin.read() 
>>>1 2 
>>>sys.stdout.write(input) 
>>>1 2 
    4 

4表示什麼。爲什麼顯示。如果我做print(input)。它工作正常,並返回"1 2"。它只是一個垃圾值或它有一些意義。

此外,當我拆分輸入獲得一個列表。它只返回兩個元素['1', '2']。如預期。我很好奇爲什麼4顯示,它不是恆定的。

>>>input=sys.stdin.read() 
>>>1 2 3 4 
>>>sys.stdout.write(input) 
>>>1 2 3 4 
    8 

再次打印和拆分工作正常。

回答

0

48sys.stdout.write返回。它「表示」已經打印了多少個字符(或字節)。

documentation on sys.stdin and sys.stdout狀態:

這些流是普通的文本文件,如那些由open()函數返回。

和這些流具有write方法:

收件給定類字節對象,B,底層的原始流,並返回寫入的字節的數目。

你可以簡單地忽略它,如果它真的麻煩你只是趕上一個變量返回:

>>> bytes_written = sys.stdout.write(input) 
1 2 

>>> bytes_written 
4 
相關問題