open()函數返回的文件對象取決于模式。當使用文本模式打開文件時,它返回一個TextIOBase的子類。當使用二進制打開時,返回的是BufferedIOBase的子類。準確細分為:可讀二進制模式,返回BufferReader對象;在可寫和追加模式中,返回BufferWriter對象,在讀寫模式中,返回BufferRandom。當buffering關閉時,原始數據流,一個RawIOBase的子類將被返回。
還可以使用unicode或者字節字符串當作一個文件來進行讀寫。對于unicode字符串,將像文本一樣使用StringIO對其進行處理,而二進制則使用BytesIO。