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