讀取檔案
例:
with open('D://Develop//new.txt') as file_object: contents=file_object.read() print(contents)函數open()開啟檔案返回一個表示檔案的Object Storage Service在後面使用的變數中,它接受一個參數:要開啟檔案的名稱,如果檔案在當前執行的檔案所在的目錄中,則直接傳入檔案的名稱,否則還需要指定檔案的路徑,這叫絕對檔案路徑。
關鍵字with在不再需要訪問檔案後將其關閉
方法read()讀取這個檔案的全部內容
寫入檔案
filename='programming.txt'with open(filename,'w') as file_object: file_object.write("I love programming.")在這個樣本中,調用open()時提供了兩個實參。第一個實參是要開啟的檔案的名稱,第二個實參‘w’告訴Python,我們要以寫入模式開啟這個檔案。開啟檔案時,可指定讀模數式(‘r’)、寫入模式(‘w’)、附加模式(‘a’;給檔案新增內容,而不是覆蓋原有的內容)或讓你能夠讀取和寫入的模式(‘r+’)。如果省略模式實參,Python將預設的唯讀模式開啟檔案。
如果要寫入的檔案不存在,將自動建立。在以寫入(‘w’)模式開啟檔案時要小心,因為如果指定的檔案已經存在,Python將在返迴文件對象前清空該檔案。
寫入多行時文字檔中不會因為print換行,因此在代碼中要指定分行符號\n
異常
每當發生讓Python不知所措的錯誤時,它都會建立一個異常對象。異常是使用try-except代碼塊處理的。
處理ZeroDivisionError異常
一個簡單錯誤:除以數字0,將會出現報錯,這時我們可以使用try-except代碼塊來處理可能引發的異常
例:
try: print(5/0)except ZeroDivisionError: print("You can't divide by zero!")如果try代碼塊中的代碼運行起來沒有問題,Python將跳過except代碼塊;否則Python將尋找這樣的except代碼塊並運行其中的代碼
try-except-else代碼塊:try代碼塊成功執行時才需要啟動並執行代碼放在else代碼塊中
處理FileNotFoundError異常
filename = 'alice.txt'with open(filename) as f_obj: contents = f_obj.read()
若檔案不存在,將引發一個FileNotFoundError異常
要處理這個錯誤:
filename = 'alice.txt'try: with open(filename) as f_obj: contents = f_obj.read()except FileNotFoundError: msg = "Sorry, the file " + filename + " does not exist." print(msg)
將會顯示Sorry, the file alice.txt does not exist.
失敗時一聲不吭:在except代碼塊中明確地告訴Python什麼都不要做。即pass語句
儲存資料
模組json讓你能夠將簡單的Python資料結構轉儲到檔案中,json 採用完全獨立於程式設計語言的文字格式設定來儲存和表示資料。
使用json.dump()和json.load()
例:
import jsonnumbers=[2,3,5,7,11,13]filename='numbers.json'with open(filename,'w') as f_obj: json.dump(numbers,f_obj)
使用副檔名.json來指出檔案儲存體的資料為JSON格式。
使用函數json.dump()將數字列表格儲存體到檔案numbers.json中
json.dump()接受兩個實參:要儲存的資料以及可用於儲存資料的檔案對象。
接下來再編寫一個程式,使用json.load()將這個列表讀取到記憶體中
接上面程式:
with open(filename) as f_obj: a=json.load(f_obj)print(a)
使用函數json.load()載入儲存在numbers.json中的資訊,並將其儲存到變數a中