22章
你學到了什么
在這一章,你學到了以下內容。
什么是文件。
- 計算機使用二進制來保存數據,而二進制只有0與1,每一個0或1成為1 bit,每8個 bit 稱為1字節(Byte)
- 文件就是有名字的字節的集合,并存儲在硬盤,CD,DVD,flash盤或其它存儲介質上的。、
- 文件 可以存儲不同的類型type的信息,一個文件可以包含文本,圖片,音樂,程序,電話號碼等。
如何打開和關閉文件。
#前提是文件與程序保存在同一目錄下,不然需要建立文件對象,
my_file = open('D:/python/"notes.txt")
open('notes.txt','r')
close('notes.txt')
打開文件的不同方式:讀、寫和追加。
#讀 open('notes.txt','r')
#寫 open('notes.txt','w')
#追加 open('notes.txt','a')
寫文件的不同方法write()
或print >>:```
new_file = open("my_new_notes.txt", 'w')
new_file.write("Eat supper\n")
new_file.write("Play soccer\n")
new_file.write("Go to bed")
new_file.close()
my_file = open("new_file.txt", 'w')
print >> my_file, "Hello there, neighbor!"
my_file.close()
如何使用pickle
在文件中保存列表和對象(以及其他 Python 數據結構)。
很多與文件夾(也稱為目錄)、文件位置和路徑相關的內容。
我們還建立了一個 Hangman 游戲,這個游戲使用來自文件的數據得到一個詞匯表。
測試題
- Python 中用來處理文件的對象稱為 __文件對象______。
- 如何創建一個文件對象?
輸入變量名,用open() 打開文件路徑
new_file = open("my_new_notes",'w')
- 文件對象和文件名之間有什么區別?
文件對象,是py可以訪問文件的前提
文件名,只是windows對每一個文件的命名。
- 完成文件讀寫時應該對文件做什么操作?
close()
- 如果用追加模式打開一個文件然后在文件中寫入內容會怎樣?
原來的內容加上后來追加上的內容,也就是對文件進行了修改補充。
- 如果用寫模式打開一個文件然后在文件中寫入內容會怎樣?
- 如果文件已經存在,文件中的所有內容都會丟失,替換為現在寫入的內容;
- 如果文件不存在,會創建一個同名的新文件,你寫的所有內容會被放入這個新文件中。
- 讀過文件的一部分之后如何從文件起始位置開始讀?
first_line_again = my_file.seek(0)
#表示,回到文件中文本的起始處,括號中的數字就是從文件起始位置算起的字節數
- 將一個 Python 對象保存到文件中要使用哪個pickle
函數?
pickle.dump()
- 要“還原”一個對象 ( 從pickle
文件得到對象 , 并放回到 Python 變量中 ),應當使用哪個pickle
方法?
recover_list = pickle.load("pickle_file")
動手試一試
-
建立程序造一些滑稽句子。每個句子應該至少有 4 部分,類似于:
The ____________ _______________ ______________ _________________
(形容詞) ( 名詞 ) ( 動詞短語 ) ( 副詞短語 )
例如:
{%}
這個程序會隨機選擇一個形容詞、一個名詞、一個動詞短語和一個副詞短語來創建句子。這些單詞都存儲在文件中,可以使用“記事本”創建這些單詞。要完成這個程序,最簡單的方法是為這 4 組單詞分別創建一個文件,不過也可以采用你希望的任何方式創建文件。下面給出一些點子來啟發一下你,不過,我相信你也能提出自己的想法。
形容詞:crazed, silly, shy, goofy, angry, lazy, obstinate, purple
名詞:monkey, elephant, cyclist, teacher, author, hockey player
動詞短語:played a ukulele, danced a jig, combed his hair, flapped her ears
副詞短語:on the table, at the grocery store, in the shower, after breakfast,with a broom
再給出一個示例輸出:“The lazy author combed his hair with a broom”。
- 編寫一個程序,讓用戶輸入名字、年齡、最喜歡的顏色和最喜歡的食物。程序要把所有這 4 項保存在一個文本文件中,每一項分別放在單獨的一行上。
- 完成第 2 題的任務,不過使用pickle
將數據保存到一個文件。(提示:如果先把數據放在一個列表中就會很容易做到。)