2015-02-08 76 views
0

在Python中返回.read()類型的技術術語是什麼?.read()返回一個流嗎?

例如:

x = open('myfile', 'r').read() 
x = stdin.read() 

什麼是x簡稱?它是一個字節流嗎?我想創建一個需要x作爲輸入的函數,並且不知道如何在我的文檔字符串中解釋它? IE

def parser(stream, ...): 
    """ First argument is ??? type, returned from .read() operations.""" 

我試過谷歌搜索,但大多數結果太jargony。

由於

+0

這取決於你稱之爲「讀」的對象是什麼類型。如果你在第一個例子中把它稱爲一個文件對象,那麼可以在文件(https://docs.python.org/2/library/stdtypes.html#file.read)中找到'file .read'。 – BrenBarn 2015-02-08 19:06:43

+0

這個東西沒有一個通用的類別?關鍵是,我想創建一個接受來自任何.read()操作的輸入的函數,並且不知道如何直接引用它。 – 2015-02-08 19:07:41

+2

IO對象上的read()通常返回一個字符串或一個字節對象(Python 2中的unicode或str對象),具體取決於您是讀取編碼數據還是原始數據。 – poke 2015-02-08 19:07:55

回答

0

它可能是unicode字符串或字符串,具體取決於您打開文件的方式以及您的Python版本。

  • 的Python 2:總是返回一個字節串(類型str
  • Python 3中:返回一個Unicode字符串(類型str)除非"b"是在模式,在這種情況下它返回類型bytes
0

https://docs.python.org/2/library/stdtypes.html#bltin-file-objects

file.read([大小])

在讀從文件最大小字節(以下如果讀取命中EOF獲得大小字節之前)。如果size參數爲負值或省略,請讀取所有數據,直到達到EOF。字節以字符串對象的形式返回。立即遇到EOF時返回空字符串。 (對於某些文件,如ttys,在EOF命中後繼續讀取是有意義的。)請注意,此方法可能會多次調用基礎C函數fread(),以儘可能接近字節大小。還要注意的是,當處於非阻塞模式時,即使沒有給出大小參數,也可能返回比請求的數據更少的數據。

什麼太jargony約

的字節返回一個字符串對象。

這是一個字符串,包含所有文件的內容。

編輯:亞當,Python通常不是嚴格鍵入。任何在類似字符串的對象上工作的東西通常都會帶有像字符串一樣的方法/屬性。

+0

我想我正在推翻它。 – 2015-02-08 19:12:53

相關問題