logo
Loading...

Python 文件讀寫 和 錯誤處理 - 莫凡 Python 基礎研習讀書會 - Cupoy

1. Python #15 讀書會內容來源:  python基础 15 读写文件1 (教学教程tutorial) 撰寫文件內容 撰寫文件內容 ## 撰寫內容 ## \n空行 context...

1. Python #15 讀書會內容來源:  python基础 15 读写文件1 (教学教程tutorial) 撰寫文件內容 撰寫文件內容 ## 撰寫內容 ## \n空行 context = 'This is my first test.\nThis is next line.\nThis is last line' print(context) 執行結果 This is my first test.This is next line.This is last line 補充 - 更多轉義字幅運用 \t tab鍵 context1 = 'This is my first test.\tThis is next line.\tThis is last line' print(context1) 執行結果 This is my first test.  This is next line.  This is last line 轉義字符可以參考: https://blog.csdn.net/XuFangfang5206/article/details/80030300 寫進文件 ## 打開文件(創建文件) ## w: write ## r: read file = open('first_file.txt', 'w') ## 寫入文件 file.write(context) ## 關閉文件 file.close() 執行結果: 會產生一個first_file文件,打開後如下圖內容 補充 不同模式的開啟文件 https://www.runoob.com/python/python-func-open.html ## r+和w+一樣都是讀寫文件,但是如果檔案不存在r+會報錯,w+會創建文件 ## 寫進檔案 f = open('test.txt', 'w+') f.write('Hello Everyone') ## 寫進檔案 f = open('test.txt', 'r+') f.write('Hi Everybody\n') ## 累加文件 f = open('test.txt', 'a+') f.write('Welcome') f.close() 執行結果: 可以看到前面寫進文件的時候,第一次的寫入被第二次覆蓋掉了,第三次才會累加上去 2. Python #16 讀書會內容來源:  python基础 16 读写文件2 (教学教程tutorial) 追加文字 ## 追加文字 append_context = '\nThis is appended file.' ## 追加方式打開文件 file = open('first_file.txt', 'a') file.write(append_context) file.close() 執行結果: 可以看到,我們在原本的first_file文件中添加了一行文字 - This is appended file. 3. Python 17 讀書會內容來源:  python基础 17 文件读写3 (教学教程tutorial) 讀取文件 - 整個 ## 讀取文件 file = open('first_file.txt', 'r') ## 全部讀取 content = file.read() print(content) file.close() 執行結果 This is my first test.This is next line.This is last lineThis is appended file. 讀取文件 - 一行 file = open('first_file.txt', 'r') ## 讀取一行 content1 = file.readline() print(content1) file.close() 執行結果 This is my first test. 讀取文件 - 一行一行寫進Python List裡面 file = open('first_file.txt', 'r') ## 一行一行讀取 content1 = file.readlines() print(content1) file.close() 執行結果: 會用list的型態,將一行一行的內容存成list傳回 ['This is my first test.\n', 'This is next line.\n', 'This is last line\n', 'This is appended file.'] 補充: 使用list資料寫進檔案¶ 讀書會內容來源: https://shengyu7697.github.io/python-write-text-file/ context = ['Welcome\n', 'Hello\t', '123456789'] f = open('test1.txt', 'w') f.writelines(context) f.close() 執行結果 補充: 使用print()的方式寫進檔案 f = open('test2.txt', 'w') print('Welcome', file = f) print('Hello', file = f) print('123456789', file = f) f.close() 執行結果 補充: 使用open as的方法來讀寫文件 with open('test3.txt', 'a') as f:        f.write('Welcome\n') 執行結果 4. 例外處理 Try Except 讀書會課程內容來源: https://www.youtube.com/watch?v=hpQz-0q5uGY&list=PLXO45tsB95cIRP5gCi8AlYwQ1uFO2aQBw&index=28 當錯誤發生 打開一個不存在的檔案 ## 打開一個不存在的檔案 file = open('aaa.txt', 'r') 執行結果: 會報錯說沒有這個檔案 ---------------------------------------------------------------------------FileNotFoundError                         Traceback (most recent call last) in      1 ## 打開一個不存在的檔案----> 2 file = open('aaa.txt', 'r')​FileNotFoundError: [Errno 2] No such file or directory: 'aaa.txt' 使用錯誤處理來印出錯誤資訊 ## 使用錯誤處理來印出錯誤資訊 try:        file = open('aaa.txt', 'r') except Exception as e:        print(e) 執行結果 [Errno 2] No such file or directory: 'aaa.txt' 那這邊因為我們知道錯誤的原因是文件根本不存在,所以為了讓使用者能夠更快了解錯誤原因,我們自己寫下錯誤原因,並在錯誤出現時印出給使用者看 ## 使用錯誤處理來印出錯誤資訊 try:        file = open('aaa.txt', 'r') except Exception as e:        print('Sorry We cannot find the file you set in your compuiter') 執行結果 Sorry We cannot find the file you set in your compuiter 這邊我們想設計一個方法是使用者知道自己沒有這個文件後,會詢問他是否要幫他自動創建這個文件 ## 使用錯誤處理來印出錯誤資訊 file_name = 'aaa.txt' try:        file = open(file_name, 'r') except Exception as e:        print('Sorry We cannot find the file you set in your compuiter')        r = input('Do you want to create a new file: (y/n)')        if r == 'y':               file = open(file_name, 'w')               print(file_name +' has been created')        else:                pass 執行結果: 當我希望系統自動幫我創建 Sorry We cannot find the file you set in your compuiterDo you want to create a new file: (y/n)yaaa.txt has been created 當執行成功 現在的情況是當沒有錯誤發生時,我們希望執行的步驟 使用else ## 使用錯誤處理來印出錯誤資訊 file_name = 'aaa.txt' try:        file = open(file_name, 'r+') except Exception as e:        print('Sorry We cannot find the file you set in your compuiter')        r = input('Do you want to create a new file: (y/n)')        if r == 'y':                file = open(file_name, 'w')                print(file_name +' has been created')        else:                pass else:        file.write('Successful!!')       print('Open Successfully')file.close() 執行結果 Open Successfully 補充教材: https://chwang12341.medium.com/%E7%B5%A6%E8%87%AA%E5%B7%B1%E7%9A%84python%E5%B0%8F%E7%AD%86%E8%A8%98-debug%E8%88%87%E6%B8%AC%E8%A9%A6%E5%A5%BD%E5%B9%AB%E6%89%8B-%E5%98%97%E8%A9%A6try-except%E8%88%87%E4%B8%BB%E5%8B%95%E5%BC%95%E7%99%BCraise%E8%88%87assert-%E7%A8%8B%E5%BC%8F%E7%95%B0%E5%B8%B8%E8%99%95%E7%90%86-c2bc2e3e4e13