01Python基礎_06檔案讀寫,
1. 讀取檔案
使用 open 函數或者 file 函數來讀檔案,使用檔案名稱的字串作為輸入參數
1 #讀取檔案內容2 3 f = open('test.txt')4 5 print(f.read()) #讀取檔案全部內容6 print(f.readline()) #讀取檔案第一行7 print(f.readlines()) #返回一個列表,每個元素代表一行8 9 f.close() #關閉檔案
| 方法 |
描述 |
| read() |
一次讀取檔案所有內容,返回一個str |
| read(size) |
每次最多讀取指定長度的內容,返回一個str;在Python2中size指定的是位元組長度,在Python3中size指定的是字元長度 |
| readlines() |
一次讀取檔案所有內容,按行返回一個list |
| readline() |
每次唯讀取一行內容 |
遍曆列印檔案中每一行:
1 with open('song.txt', 'r', encoding='utf-8') as f:2 for line in f.readlines():3 print(line)
或:
1 with open('song.txt', 'r', encoding='utf-8', newline='') as f:2 for line in f:3 print(line)
2. 寫檔案
open()預設已r模式開啟檔案,要想寫入,需已w模式開啟檔案。以w模式開啟時,如果檔案不存在則建立檔案,如果檔案存在則覆蓋之前的內容。
1 #寫入檔案2 3 f = open('test.txt', 'w') #使用w模式開啟檔案4 f.write('hello world!') #寫入內容5 f.close() #關閉檔案
| 檔案開啟模式 |
描述 |
| r |
以唯讀模式開啟檔案,並將檔案指標指向檔案頭;如果檔案不存在會報錯 |
| w |
以唯寫模式開啟檔案,並將檔案指標指向檔案頭;如果檔案存在則將其內容清空,如果檔案不存在則建立 |
| a |
以只追加可寫入模式開啟檔案,並將檔案指標指向檔案尾部;如果檔案不存在則建立 |
| r+ |
在r的基礎上增加了可寫功能 |
| w+ |
在w的基礎上增加了可讀功能 |
| a+ |
在a的基礎上增加了可讀功能 |
| b |
讀寫二進位檔案(預設是t,表示文本),需要與上面幾種模式搭配使用,如ab,wb, ab, ab+(POSIX系統,包括Linux都會忽略該字元) |
3. 關閉檔案
關閉檔案可以保證內容已經被寫入檔案,而不關閉可能會出現意想不到的結果。使用close()關閉檔案。
可以用try...finally來保證檔案無論如何都能被關閉:
1 #寫入檔案2 try:3 f = open('test.txt', 'w+') #使用w+模式開啟檔案4 f.write('hello world!') #寫入內容5 finally:6 if f:7 f.close()8 print('file has been closed. ')
事實上,Python提供了更安全的方法,當 with 塊的內容結束後,Python會自動調用它的close 方法,確保讀寫的安全:
1 #寫入檔案2 with open('test.txt', 'w') as f:3 f.write('hello world!') #寫入內容4 print(f.closed) #返回True