標籤:
第12章 輸入/輸出
大多數情況下,我們需要程式與使用者互動。從使用者得到輸入,然後列印一些結果。
可以分別使用 raw_input 和 print 語句來完成這些功能。對於輸出,可以使用多種多樣的 str(字串)類。
另一個常用的輸入/輸出類型是處理檔案。建立、讀和寫檔案的能力是許多程式所必須的。
檔案
通過 file 類的對象來開啟一個檔案,使用 file 類的 read、readline 或 write 方法來恰當地讀寫檔案。對檔案的讀寫能力依賴於開啟檔案時指定的模式(模式可以為讀模式(‘r‘)、寫入模式(‘w‘)或追加模式(‘a‘))。最後完成對檔案的操作時,調用 close 方法完成對檔案的使用。
# -*- coding: utf-8 -*-# Filename: using_file.pypoem = ‘‘‘Programming is funWhen the work is doneif you wanna make your work also fun: use Python!‘‘‘f = file(‘poem.txt‘, ‘w‘) # open for ‘w‘ritingf.write(poem) # write text to filef.close() # close the filef = file(‘poem.txt‘)# if no mode is specified, ‘r‘ead mode is assumed by defaultwhile True: line = f.readline() if len(line) == 0: # zero length indicates EOF break print line, # notice comma to avoid automatic newline added by Python
f.close()
首先,使用寫入模式開啟檔案,然後使用 file 類的 write 方法來寫檔案,最後用 close 關閉檔案。
接下來,再一次開啟同一個檔案來讀檔案。如果不指定模式,預設為讀模式。readline 方法讀取檔案的每一行,返回包括行末分行符號的一個完整行。當一個空的字串被返回時,表示檔案末已經到達。
最後,使用 close 關閉這個檔案。檔案讀到的內容已經以分行符號結尾,所以在 print 語句上使用逗號消除自動換行。
儲存器
python 提供一個標準的模組 pickle。可以在檔案中儲存任何 python 對象,之後可以把它完整無缺地取出來,被稱為 持久地 儲存對象。
另一個 cPickle,功能和 pickle 模組完全相同,用 C 語言編寫,比 pickle 快1000倍。
# -*- coding: utf-8 -*-# Filename: using_pickling.pyimport cPickle as p#import pickle as pshoplistfile = ‘shoplist.data‘# the name of the file where we will store the objectshoplist = [‘apple‘,‘mango‘,‘carrot‘]# write to the filef = file(shoplistfile, ‘w‘)p.dump(shoplist, f) # dump the object to a filef.close()del shoplist # remove the shoplist# read back from the storagef = file(shoplistfile)storedlist = p.load(f)print storedlist
首先,使用 import..as 文法,以便於使用更短的模組名稱。
儲存 過程:首先以寫入模式開啟一個 file 對象,然後調用儲存器模組的 dump 函數把對象儲存到開啟的檔案中。
取儲存 過程:使用 pickle 模組的 load 函數的返回來取回對象。
A Byte of Python 筆記(10)