精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一文搞懂文件操作與異常模塊

開發 后端
今天給大家帶來一篇Python文件操作與異常處理,這兩個部分往往是初學者入門時容易忽略的部分。

[[397380]]

本文轉載自微信公眾號「數據STUDIO」,作者云朵君  。轉載本文請聯系數據STUDIO公眾號。

大家好!我是云朵君,今天給大家帶來一篇Python文件操作與異常處理,這兩個部分往往是初學者入門時容易忽略的部分。大家重點的精力都放在如何寫出高大上的算法,如何畫出酷炫的圖形,如何使用機器學習模型等等,而常常容易忽略Python文件操作與異常處理,這兩個看似不起眼卻在python中卻擔著至關重要的角色。下面我們就來一起看看吧。

文件操作

我們的程序可以讀取文件,也可以寫入文件。默認情況下,文件以讀模式('r')打開,但也可以以寫模式('w')和附加模式('a')打開。

你的程序可以從文件中讀取信息,也可以向文件中寫入數據。從文件中讀取可以讓你處理各種各樣的信息;寫入文件允許用戶在下次運行你的程序時重新開始。您可以將文本寫入文件,還可以將Python結構(如列表)存儲在數據文件中。

讀取文件

要從文件中讀取,程序需要打開文件,然后讀取文件的內容。您可以一次讀取文件的全部內容,也可以逐行讀取文件。with語句確保當程序完成對文件的訪問后,文件被正確地關閉。

  • 一次讀取整個文件
  1. filename = 'siddhartha.txt' 
  2. with open(filename) as f_obj: 
  3.     contents = f_obj.read() 
  4. print(contents) 
  • 逐行讀取

從文件中讀取的每一行在行尾都有一個換行符,而print函數會添加它自己的換行符。rstrip()方法消除了打印到終端時會產生的額外空白行。

  1. filename = 'siddhartha.txt' 
  2. with open(filename) as f_obj: 
  3.     for line in f_obj: 
  4. print(line.rstrip()) 
  • 將行存儲在列表中
  1. filename = 'siddhartha.txt' 
  2. with open(filename) as f_obj: 
  3.     lines = f_obj.readlines() 
  4. for line in lines: 
  5.     print(line.rstrip()) 
  • 寫入文件

將'w'參數傳遞給open()告訴Python你想寫入文件。小心:如果文件已經存在,這將刪除文件的內容。

傳遞'a'參數告訴Python你想要添加到一個現有文件的末尾。

  • 寫入一個空文件
  1. filename = 'programming.txt' 
  2. with open(filename, 'w'as f: 
  3.     f.write("I love programming!"
  • 向空文件寫入多行
  1. filename = 'programming.txt' 
  2. with open(filename, 'w'as f: 
  3.     f.write("I love programming!\n"
  4.     f.write("I love creating new games.\n"
  • 追加寫入文件
  1. filename = 'programming.txt' 
  2. with open(filename, 'a'as f: 
  3.     f.write("I also love working with data.\n"
  4.     f.write("I love making apps as well.\n"

文件路徑

當Python運行open()函數時,它會在存儲正在執行的程序的同一目錄中查找文件。可以使用相對路徑從子文件夾中打開文件。也可以使用絕對路徑來打開系統中的任何文件。

  • 從子文件夾中打開文件
  1. f_path = "text_files/alice.txt" 
  2. with open(f_path) as f_obj: 
  3.     lines = f_obj.readlines() 
  4. for line in lines: 
  5.     print(line.rstrip()) 
  • 使用絕對路徑打開文件
  1. f_path = "/home/ehmatthes/books/alice.txt" 
  2. with open(f_path) as f_obj: 
  3.     lines = f_obj.readlines() 
  • 在Windows上打開文件

Windows有時會錯誤地解釋正斜杠。如果遇到這種情況,請在文件路徑中使用反斜杠。

  1. f_path = r"C:\Users\ehmatthes\books\alice.txt" 
  2. with open(f_path) as f_obj: 
  3.     lines = f_obj.readlines() 

Except異常模塊

異常是幫助程序以適當方式響應錯誤的特殊對象。例如,如果程序試圖打開一個不存在的文件,可以使用異常來顯示一個信息豐富的錯誤消息,而不是使程序崩潰。

將可能導致錯誤的代碼放置在try塊中。響應錯誤時應該運行的代碼位于except塊中。只有在try塊成功時才應該運行的代碼被放入else塊。

  1. prompt = "How many tickets do you need? " 
  2. num_tickets = input(prompt) 
  3. try: 
  4.     num_tickets = int(num_tickets) 
  5. except ValueError: 
  6.     print("Please try again."
  7. else
  8.     print("Your tickets are printing."

try-except代碼塊

  • 處理ZeroDivisionError異常
  1. try: 
  2.     print(5/0) 
  3. except ZeroDivisionError: 
  4.     print("You can't divide by zero!"
  • 處理FileNotFoundError異常
  1. f_name = 'siddhartha.txt' 
  2. try: 
  3.     with open(f_name) as f_obj: 
  4.         lines = f_obj.readlines() 
  5. except FileNotFoundError: 
  6.     msg = "Can't find file {0}.".format(f_name) 
  7.     print(msg) 

在編寫代碼時,很難知道要處理哪種異常。嘗試編寫沒有try塊的代碼,并讓它生成一個錯誤。回溯將告訴您程序需要處理哪種異常。

else代碼塊

try塊應該只包含可能導致錯誤的代碼。任何依賴于try塊成功運行的代碼都應該放在else塊中。

  • 使用else塊
  1. print("Enter two numbers. I'll divide them."
  2. x = input("First number: "
  3. y = input("Second number: "
  4. try: 
  5.     result = int(x) / int(y) 
  6. except ZeroDivisionError: 
  7.     print("You can't divide by zero!"
  8. else
  9.    print(result) 
  • 防止用戶輸入導致的崩潰

如果沒有下面示例中的except塊,如果用戶試圖除零,程序將崩潰。正如所寫的,它將優雅地處理錯誤并繼續運行。

  1. # 一個簡單的除法計算器。 
  2. print("Enter two numbers. I'll divide them."
  3. print("Enter 'q' to quit."
  4. while True
  5.     x = input("\nFirst number: "
  6.     if x == 'q'
  7.         break 
  8.     y = input("Second number: "
  9.     if y == 'q'
  10. break 
  11.     try: 
  12.         result = int(x) / int(y) 
  13.     except ZeroDivisionError: 
  14.         print("You can't divide by zero!"
  15.     else
  16.         print(result) 

默默地失敗

有時希望程序在遇到錯誤時繼續運行,而不向用戶報告錯誤。在else塊中使用pass語句可以做到這一點。

  • 在else塊中使用pass語句
  1. f_names = ['alice.txt''siddhartha.txt'
  2.            'moby_dick.txt''little_women.txt'
  3. for f_name in f_names: 
  4.     # 報告找到的每個文件的長度。 
  5.     try: 
  6.         with open(f_name) as f_obj: 
  7.             lines = f_obj.readlines() 
  8.     except FileNotFoundError: 
  9.         # 繼續看下一個文件。 
  10.         pass  
  11.   else
  12.         num_lines = len(lines) 
  13.         msg = "{0} has {1} lines.".format( 
  14.             f_name, num_lines) 
  15.         print(msg) 

避免空的except塊

異常處理代碼應該捕獲在程序執行期間預期發生的特定異常。空的except塊將捕獲所有異常,包括在強制關閉程序時可能需要的鍵盤中斷和系統退出。

如果你想使用try塊,但又不確定要捕獲哪個異常,那么使用exception。它將捕獲大多數異常,但仍然允許您故意中斷程序。

  • 避免空的except塊
  1. try: 
  2.    # Do something 
  3. except
  4.    pass 
  • 使用Exception
  1. try: 
  2.     # Do something 
  3. except Exception: 
  4.     pass 
  • 打印異常
  1. try: 
  2.     # Do something 
  3. except Exception as e: 
  4.     print(e, type(e)) 

使用json存儲數據

json模塊允許您將簡單的Python數據結構轉儲到一個文件中,并在程序下次運行時從該文件加載數據。JSON數據格式不是特定于Python的,所以你也可以與使用其他語言的人共享這類數據。

在處理存儲的數據時,了解如何管理異常非常重要。在處理數據之前,通常希望確保試圖加載的數據存在。

  • 使用json.dump()存儲數據
  1. # 存儲一些數字。 
  2. import json 
  3. numbers = [2, 3, 5, 7, 11, 13] 
  4. filename = 'numbers.json' 
  5. with open(filename, 'w'as f_obj: 
  6.     json.dump(numbers, f_obj) 
  • 使用json.load()存儲數據
  1. # 加載一些以前存儲的數字。 
  2. import json 
  3. filename = 'numbers.json' 
  4. with open(filename) as f_obj: 
  5.     numbers = json.load(f_obj) 
  6. print(numbers) 
  • 確保存儲的數據存在
  1. import json 
  2. f_name = 'numbers.json' 
  3. try: 
  4.     with open(f_name) as f_obj: 
  5.         numbers = json.load(f_obj) 
  6. except FileNotFoundError: 
  7.     msg = "Can’t find {0}.".format(f_name) 
  8.     print(msg) 
  9. else
  10.     print(numbers) 

決定報告哪些錯誤

編寫良好、經過適當測試的代碼不太容易出現內部錯誤,比如語法或邏輯錯誤。但是,每當你的程序依賴于諸如用戶輸入或文件存在之類的外部因素時,就有可能引發異常。

 

如何將錯誤傳達給用戶取決于你自己。有時用戶需要知道一個文件是否丟失了;有時最好是靜默地處理錯誤。一點經驗會幫助你知道該報告多少。

 

責任編輯:武曉燕 來源: 數據STUDIO
相關推薦

2021-09-11 10:41:27

PythonPickle模塊

2024-04-12 12:19:08

語言模型AI

2022-03-24 08:51:48

Redis互聯網NoSQL

2023-12-21 08:02:21

CPUJava8列表

2021-03-22 10:05:59

netstat命令Linux

2023-09-15 12:00:01

API應用程序接口

2023-09-08 08:20:46

ThreadLoca多線程工具

2021-08-05 06:54:05

觀察者訂閱設計

2025-01-16 00:20:41

2022-09-27 08:00:00

零售商數據數據匹配

2025-01-16 10:38:31

2021-11-06 10:18:30

Python變量常量

2023-08-24 16:50:45

2024-06-05 11:43:10

2023-04-03 15:04:00

RPCPHP語言

2019-11-19 08:00:00

神經網絡AI人工智能

2022-06-07 10:13:22

前端沙箱對象

2021-06-30 08:45:02

內存管理面試

2022-08-15 15:39:23

JavaScript面向對象數據

2021-01-13 05:21:59

參數
點贊
收藏

51CTO技術棧公眾號

x99av成人免费| 欧美日韩高清一区| 欧美高清视频一区二区三区在线观看| 久久精品视频5| 久久密一区二区三区| 日韩无一区二区| 97在线免费公开视频| 国产在线看片| 久久久影院官网| 91亚洲一区精品| 在线观看 亚洲| 欧美另类专区| 最新日韩中文字幕| 影音先锋黄色资源| 国产精品1区在线| 日韩欧美国产一区二区| 欧美丰满少妇xxxxx做受| 亚洲黄色免费电影| 国产美女搞久久| 波多野结衣国产| 亚洲精品tv久久久久久久久久| 亚洲精品美女在线观看| 午夜激情视频网| www.成人在线视频| 午夜电影网亚洲视频| 久久久久亚洲av无码专区喷水| 牛牛热在线视频| 成人黄页在线观看| 91久久精品一区二区别| 亚洲一区精品在线观看| 久久久久99| 57pao成人国产永久免费| 免费在线观看黄色av| 久久日文中文字幕乱码| 亚洲免费电影一区| 一起草在线视频| 北条麻妃在线一区二区免费播放| 6080yy午夜一二三区久久| 欧美一级裸体视频| 四虎4545www国产精品| 欧美色道久久88综合亚洲精品| 日本欧美视频在线观看| 综合久久2019| 亚洲精品综合在线| 四虎永久免费网站| 好了av在线| 亚洲日本青草视频在线怡红院| 亚洲精品一品区二品区三品区| 黄色软件在线观看| 国产午夜精品一区二区三区视频| 蜜桃成人在线| 黄色美女网站在线观看| 国产婷婷色一区二区三区| 欧美一级爱爱| eeuss影院在线观看| 国产亚洲成av人在线观看导航| 欧美日韩精品综合| 国产系列电影在线播放网址| 国产亚洲综合色| 亚洲精美视频| 国产原创视频在线观看| 亚洲激情图片一区| 草草视频在线免费观看| 九色porny丨入口在线| 日韩欧美国产激情| 亚洲视频在线a| 欧美天堂一区| 欧美一区二区大片| 日本人添下边视频免费| 欧美一区二区三区红桃小说| 亚洲毛片在线看| 性少妇xx生活| 欧美精品三区| 97免费中文视频在线观看| 欧美国产成人精品一区二区三区| 久久一本综合频道| 国产在线播放91| 亚洲男女视频在线观看| 26uuu精品一区二区| 亚洲高清精品中出| 1024在线播放| 欧美性xxxxxxx| 国产色视频在线播放| 欧洲大片精品免费永久看nba| 亚洲аv电影天堂网| 国产精久久一区二区三区| 外国成人激情视频| 69久久夜色精品国产7777| 波多野结衣一区二区三区在线| 精品一区免费av| 国内视频一区二区| 在线观看美女网站大全免费| 亚洲国产一区视频| 欧美黄色性生活| 91嫩草精品| 色婷婷久久av| 日韩少妇高潮抽搐| 久久99久久99精品免视看婷婷| 国产一区二区三区免费不卡| 阿v免费在线观看| 亚洲综合另类小说| www.亚洲高清| 日韩高清电影免费| 久热精品视频在线观看一区| 久久久黄色大片| 国产v日产∨综合v精品视频| 午夜精品区一区二区三 | 亚洲欧美日韩国产精品| 国产人与禽zoz0性伦| 国产欧美日韩一级| 91一区二区三区| 在线播放毛片| 色综合色综合色综合色综合色综合 | 精品久久国产老人久久综合| 国产黄色录像视频| 国产一区二区你懂的| 亚洲a∨日韩av高清在线观看| 无码国产色欲xxxx视频| 一区二区三区中文在线| 一区二区三区视频在线观看免费| 人体久久天天| 国内精品久久久久久久久| 国产一区二区在线播放视频| 国产亚洲一本大道中文在线| 国产视频九色蝌蚪| 51亚洲精品| 免费99精品国产自在在线| 在线播放成人av| 国产情人综合久久777777| 成人av一级片| 国偷自产视频一区二区久| 欧美成人免费在线观看| 一女二男一黄一片| 久久久五月婷婷| 人妻精品无码一区二区三区| 久久精品论坛| 97免费视频在线播放| 日韩中文字幕观看| 亚洲午夜在线视频| 亚洲黄色小说在线观看| 伊人青青综合网| 亚洲最大av网| 在线不卡日本v二区707| 欧美大片拔萝卜| 欧美成人免费观看视频| 国产精品1024久久| 国产一区二区三区在线免费| 青草伊人久久| 欧美大秀在线观看| 免费观看国产精品| 亚洲国产日韩a在线播放| www.美色吧.com| 亚洲国产精品第一区二区| 国产精品一区二区免费| 黄色漫画在线免费看| 日韩大陆毛片av| 91视频免费网址| 久久精品人人做人人综合| 亚洲 欧美 日韩系列| 日产午夜精品一线二线三线| 国产在线a不卡| mm1313亚洲国产精品美女| 欧美一级欧美一级在线播放| 国产a免费视频| 97精品电影院| 日本免费黄视频| 日韩精品dvd| 5566av亚洲| 免费v片在线观看| 国产亚洲欧洲在线| 国产免费久久久| 亚洲午夜羞羞片| 一区二区三区少妇| 日韩1区2区日韩1区2区| 资源网第一页久久久| 日韩精品中文字幕吗一区二区| 久久久久久久久久久免费| 深夜福利视频在线观看| 欧美日韩中文精品| 亚洲国产美女视频| 91亚洲精品久久久蜜桃网站| 一区二区三区 欧美| 欧美一区网站| 免费成人深夜夜行视频| 先锋影音一区二区| 性色av一区二区三区免费| 国产一二在线观看| 日韩欧美国产精品| 亚洲综合久久网| 亚洲黄色录像片| 精品无码国产污污污免费网站 | 久久久精品五月天| 免费成人深夜夜行网站视频| 欧美男男freegayvideosroom| 国产精品网红福利| zzzwww在线看片免费| 最新国产精品亚洲| 手机av免费在线观看| 欧美日韩在线播放一区| 91香蕉在线视频| 亚洲色图制服诱惑| 性高潮久久久久久久| 国产99精品视频| 911福利视频| 亚久久调教视频| 久久手机在线视频| 色综合咪咪久久网| 欧美日韩在线一区二区三区| 亚洲1区在线观看| 国产美女久久精品香蕉69| 成人观看网址| 久久69精品久久久久久国产越南| 邻居大乳一区二区三区| 亚洲成人精品久久| 国产成人精品亚洲精品色欲| 欧美无砖专区一中文字| 国产欧美一区二区三区在线看蜜臂 | 激情视频在线观看一区二区三区| 成人在线分类| 国产精品永久在线| 写真福利精品福利在线观看| 久久露脸国产精品| 欧美四级在线| 久久影院资源网| 日本韩国在线视频爽| 亚洲人成在线电影| 视频二区在线| 精品av久久707| 国产黄色一级大片| 7777精品伊人久久久大香线蕉最新版| www.色国产| 色婷婷亚洲婷婷| 久久永久免费视频| 日本乱人伦aⅴ精品| 亚洲s码欧洲m码国产av| 欧美性猛交xxxx免费看| 欧美bbbbbbbbbbbb精品| 五月激情综合婷婷| 日韩av电影网| 精品久久久久久久久久久久| 久久精品这里有| 精品国产乱码久久久久久虫虫漫画| 久久精品美女视频| 亚洲第一福利一区| 国产无码精品一区二区| 亚洲图片自拍偷拍| 国产午夜福利精品| 精品人伦一区二区三区蜜桃网站| 日本熟妇毛耸耸xxxxxx| 黄色一区二区在线| www.久久精品视频| 欧美在线色视频| 91精品中文字幕| 欧美精品视频www在线观看| 国产一区二区三区视频免费观看 | 国产精品久久久久77777| 亚洲mmav| 成人激情电影一区二区| 国产午夜亚洲精品一级在线| av在线不卡一区| 日韩中出av| 五月婷婷综合色| 91精品久久久久久久久久不卡| 一级性生活视频| 亚洲福利专区| 性生交免费视频| 国产一区久久久| 男男做爰猛烈叫床爽爽小说| 26uuu成人网一区二区三区| 中文字幕第24页| 亚洲人成在线播放网站岛国| 国产中文字幕免费| 色天天综合久久久久综合片| 亚洲在线视频播放| 日韩精品一区二区三区在线| 亚洲三区在线观看无套内射| 这里只有精品在线观看| 91麻豆免费在线视频| 538国产精品一区二区在线| 国产一区二区三区四区五区3d | www.久久久精品| 国产精品77777| 国产精品无码午夜福利| 亚洲人成伊人成综合网小说| 日韩欧美三级视频| 欧美日韩国产首页| 亚洲aⅴ在线观看| 日韩在线视频免费观看| 爱草tv视频在线观看992| 国产精品美女网站| 老司机aⅴ在线精品导航 | 黄网站视频在线观看| 91国产一区在线| 国产精品国产亚洲精品| 欧美日韩高清在线一区| 中文字幕一区二区三区在线视频| 免费黄色福利视频| 国产精品一卡二卡在线观看| 国产精品高清无码在线观看| 一区二区三区四区激情| 影音先锋国产资源| 日韩精品亚洲元码| 成a人片在线观看| 国产成人精品免费久久久久| 高潮久久久久久久久久久久久久| 新呦u视频一区二区| 国产精品日韩| 精品人妻二区中文字幕| 国产精品久久久久影院| 欧美一区二区三区网站| 亚洲韩国欧洲国产日产av| 99热国产在线| 成人黄色av播放免费| 欧美另类69xxxxx| 精品国产一二三四区| 成人黄色一级视频| 欧美极品aaaaabbbbb| 在线不卡a资源高清| а天堂8中文最新版在线官网| 97香蕉久久超级碰碰高清版| 日韩成人综合网站| 五月天久久狠狠| 鲁大师成人一区二区三区| 亚洲 欧美 日韩在线| 亚洲一级二级在线| 精品国产九九九| 欧美男插女视频| av日韩在线免费观看| 亚洲一区二区三区免费观看| 日韩一区欧美二区| www.久久av| 欧美日韩亚洲国产一区| 午夜黄色小视频| 亚州精品天堂中文字幕| 精品丝袜久久| 国产在线播放观看| 成人18视频在线播放| 精品无码m3u8在线观看| 精品日韩成人av| 1区2区3区在线| 麻豆av一区二区三区| 午夜亚洲性色福利视频| 亚洲综合网在线观看| 91福利视频网站| 婷婷在线视频观看| 91精品国产综合久久香蕉最新版 | 内射无码专区久久亚洲| 欧美激情精品久久久久久变态 | 亚洲国产精品美女| 国产激情视频在线看| 久久人人九九| 久久久噜噜噜久久狠狠50岁| 中国毛片在线观看| 欧美亚洲一区二区在线| 精品欧美色视频网站在线观看| 91视频8mav| 国内自拍一区| 无套内谢大学处破女www小说| 色综合激情五月| 国产高清免费av在线| 国产精品青青在线观看爽香蕉 | 午夜精品久久久久久久99黑人| 国产亚洲精品美女久久| 免费观看精品视频| 国产精品久久久久久久久免费桃花| 国产精品区在线观看| 欧美福利视频在线| 亚洲永久精品唐人导航网址| 777视频在线| 亚洲综合999| 国内在线精品| 成人中文字幕+乱码+中文字幕| 亚洲婷婷在线| xxx在线播放| 91精品国产高清一区二区三区蜜臀| 日本高清成人vr专区| 裸模一区二区三区免费| 捆绑调教美女网站视频一区| 久久久精品视频在线| 亚洲欧洲成视频免费观看| 国模大尺度视频一区二区| 男人日女人视频网站| 中文字幕精品一区二区三区精品| av免费观看网址| 日韩av片永久免费网站| 婷婷亚洲综合| 亚洲a v网站| 欧美精品一区二| 欧美成人黄色| 国产中文字幕免费观看| 亚洲四区在线观看| 亚洲av毛片成人精品| 91欧美精品成人综合在线观看| 国产精品最新自拍| 真实国产乱子伦对白在线| 亚洲欧美一区二区三区在线| 99tv成人影院| 少妇激情一区二区三区| 亚洲高清一区二区三区| 日本亚洲精品|