輸入輸出
檔案
你可以通過建立一個file類的對象來開啟一個檔案,分別使用file類的read、readline或write方法來恰當地讀寫檔案。對檔案的讀寫能力依賴於你在開啟檔案時指定的模式。最後,當你完成對檔案的操作的時候,你調用close方法來告訴Python我們完成了對檔案的使用。
使用檔案例子如下:
Python代碼
poem = '''''\Programming is fun When the work is done if you wanna make your work also fun:use Python!''' f = file('poem.txt', 'w') f.write(poem) f.close() f = file('poem.txt') while True: line = f.readline() if len(line) == 0: break print line, f.close()
輸出:
Python代碼
Programming is fun When the work is done if you wanna make your work also fun: use Python!
首先,可以通過指明我們希望開啟的檔案和模式來建立一個file類的執行個體。模式可以為讀模式('r')、寫入模式('w')或追加模式('a')。還有很多其它的模式可以使用,可以使用help(file)來瞭解它們的詳情。我們用寫入模式開啟檔案,然後使用file類的write方法來寫檔案,最後我們用close關閉這個檔案。
接下來,我們再一次開啟同一個檔案來讀檔案。如果我們沒有指定模式,讀模式會作為預設的模式。在一個迴圈中,我們使用readline方法讀檔案的每一行。這個方法返回包括行末分行符號的一個完整行。所以,當一個空的字串被返回的時候,即表示檔案末已經到達了,於是我們停止迴圈。
注意,因為從檔案讀到的內容已經以分行符號結尾,所以我們在print語句上使用逗號來消除自動
換行。
最後,我們用close關閉這個檔案。
儲存器
Python提供一個標準的模組,稱為pickle。使用它你可以在一個檔案中儲存任何Python對象,之後你又可以把它完整無缺地取出來。這被稱為持久地儲存對象。
還有另一個模組稱為cPickle,它的功能和pickle模組完全相同,只不過它是用C語言編寫的,因此要快得多(比pickle快1000倍)。你可以使用它們中的任一個,而我們在這裡將使用cPickle模組。記住,我們把這兩個模組都簡稱為pickle模組。
儲存與取儲存例子如下:
Python代碼
import cPickle as p shoplistfile = 'shoplist.data' shoplist = ['apple', 'mango', 'carrot'] f = file(shoplistfile, 'w') p.dump(shoplist, f) f.close() del shoplist f = file(shoplistfile) storedlist = p.load(f) print storedlist
輸出:
Python代碼
['apple', 'mango', 'carrot']
首先,請注意我們使用了import..as文法。這是一種便利方法,以便於我們可以使用更短的模組名稱。在這個例子中,它還讓我們能夠通過簡單地改變一行就切換到另一個模組(cPickle或者pickle)!在程式的其餘部分的時候,我們簡單地把這個模組稱為p。
為了在檔案裡儲存一個對象,首先以寫入模式開啟一個file對象,然後調用儲存器模組的dump函數,把對象儲存到開啟的檔案中。這個過程稱為儲存 。
接下來,我們使用pickle模組的load函數的返回來取回對象。這個過程稱為取儲存 。