Python中的檔案操作以及輸入輸出
我們可以分別使用raw_input
和print
語句來完成這些功能。對於輸出,你也可以使用多種多樣的str
(字串)類。例如,你能夠使用rjust
方法來得到一個按一定寬度靠右對齊的字串。利用help(str)
獲得更多詳情。
另一個常用的輸入/輸出類型是處理檔案。建立、讀和寫檔案的能力是許多程式所必需的,我們將會在這章探索如何?這些功能。
一.使用檔案
你可以通過建立一個file
類的對象來開啟一個檔案,分別使用file
類的read
、readline
或write
方法來恰當地讀寫檔案。對檔案的讀寫能力依賴於你在開啟檔案時指定的模式。最後,當你完成對檔案的操作的時候,你調用close
方法來告訴Python我們完成了對檔案的使用,在各方面,與C/C++類似。
#!/usr/bin/python<br /># Filename: using_file.py</p><p>poem = '''\<br />Programming is fun<br />When the work is done<br />if you wanna make your work also fun:<br /> use Python!<br />'''</p><p>f = file('poem.txt', 'w') # open for 'w'riting<br />f.write(poem) # write text to file<br />f.close() # close the file</p><p>f = file('poem.txt')<br /># if no mode is specified, 'r'ead mode is assumed by default<br />while True:<br /> line = f.readline()<br /> if len(line) == 0: # Zero length indicates EOF<br /> break<br /> print line,<br /> # Notice comma to avoid automatic newline added by Python<br />f.close() # close the file </p><p>
輸出為:
$ python using_file.py<br />Programming is fun<br />When the work is done<br />if you wanna make your work also fun:<br /> use Python! </p><p>
模式可以為讀模式('r'
)、寫入模式('w'
)或追加模式('a'
)。詳細情況可見help(file)
。
二.儲存空間
Python提供一個標準的模組,稱為pickle
。使用它你可以在一個檔案中儲存任何Python對象,之後你又可以把它完整無缺地取出來。這被稱為持久地儲存對象。
還有另一個模組稱為cPickle
,它的功能和pickle
模組完全相同,只不過它是用C語言編寫的,因此要快得多(比pickle
快1000倍)。你可以使用它們中的任一個,而我們在這裡將使用cPickle
模組。記住,我們把這兩個模組都簡稱為pickle
模組。
例如:
#!/usr/bin/python<br /># Filename: pickling.py</p><p>import cPickle as p<br />#import pickle as p</p><p>shoplistfile = 'shoplist.data'<br /># the name of the file where we will store the object</p><p>shoplist = ['apple', 'mango', 'carrot']</p><p># Write to the file<br />f = file(shoplistfile, 'w')<br />p.dump(shoplist, f) # dump the object to a file<br />f.close()</p><p>del shoplist # remove the shoplist</p><p># Read back from the storage<br />f = file(shoplistfile)<br />storedlist = p.load(f)<br />print storedlist </p><p>
輸出為:
$ python pickling.py<br />['apple', 'mango', 'carrot'] </p><p>