[Python]文件與異常的錯誤處理

2021-02-14 筆記備忘錄
[Python]文件與異常的錯誤處理1. 文件的處理過程
# 文件基本操作:打開文件,處理文件,關閉文件
the_file = open("sketch.txt", 'r')

line_content = the_file.readline()  # 不指定readline的參數,讀取一整行
print(line_content)

# 輸出了sketch.txt的第一行數據
E:\Github\python\env\Scripts\python.exe E:/Github/python/files_error/fileIO/fileIO.py
Man: Is this the right room for an argument?

# 文件基本操作:打開文件,處理文件,關閉文件
the_file = open("sketch.txt", 'r')

line_content = the_file.readline(5)  # 指定readline的參數為5,最多輸出了4個字符
print(line_content)

# 輸出了4個字符
E:\Github\python\env\Scripts\python.exe E:/Github/python/files_error/fileIO/fileIO.py
Man: 

2. 文件路徑的查詢,更改
# 文件基本操作:打開文件,處理文件,關閉文件
import os
os.getcwd()
os.chdir('../fileIO')
the_file = open("sketch.txt", 'r')

for line_each in the_file:
    line_content = the_file.readline()
    print(line_content, end='')
   
the_file.close()

E:\Github\python\env\Scripts\python.exe E:/Github/python/files_error/fileIO/fileIO.py
Other Man: I've told you once.
Other Man: Yes I have.
Other Man: Just now.
Other Man: Yes I did!
Other Man: I'm telling you, I did!
Other Man: Oh I'm sorry, is this a five minute argument, or the full half hour?
Other Man: Just the five minutes. Thank you.
Man: You most certainly did not!

3. 文件一些基本操作接口

os.getcwd  類似於linux下的pwd,獲取當前工作路徑

# 文件基本操作:打開文件,處理文件,關閉文件
import os
os.getcwd()
os.chdir('../fileIO')
the_file = open("sketch.txt", 'r')

"""
for line_each in the_file:
    line_content = the_file.readline()
    print(line_content, end='')
"""

line_content = the_file.readline()
print(line_content, end='')

line_content = the_file.readline()
print(line_content, end='')
the_file.seek(0)
line_content = the_file.readline()
print(line_content, end='')

the_file.close()

# 輸出結果可以看出,通過調用seek(0), 將文件指針調到最開始的地方
E:\Github\python\env\Scripts\python.exe E:/Github/python/files_error/fileIO/fileIO.py
Man: Is this the right room for an argument?
Other Man: I've told you once.
Man: Is this the right room for an argument?

split("分割標識",最多允許分割次)

# 文件基本操作:打開文件,處理文件,關閉文件
import os
os.getcwd()
os.chdir('../fileIO')
the_file = open("sketch.txt", 'r')

# split用法
line_content = the_file.readline()
(role, line_spoken) = line_content.split(":")
print(role, end='\n')
print(line_spoken, end='\n')

the_file.close()

# 輸出分割之後的數據
E:\Github\python\env\Scripts\python.exe E:/Github/python/files_error/fileIO/fileIO.py
Man
 Is this the right room for an argument?

find

# 文件基本操作:打開文件,處理文件,關閉文件
import os
os.getcwd()
os.chdir('../fileIO')
the_file = open("sketch.txt", 'r')

for line_each in the_file:
    if not line_each.find(":") == -1:
        (role, line_spoken) = line_each.split(":", 1)
        print(role, end='=>')
        print(line_spoken, end='')

the_file.close()

E:\Github\python\env\Scripts\python.exe E:/Github/python/files_error/fileIO/fileIO.py
Man=> Is this the right room for an argument?
Other Man=> I've told you once.
Man=> No you haven't!
Other Man=> Yes I have.
Man=> When?
Other Man=> Just now.
Man=> No you didn't!
Other Man=> Yes I did!
Man=> You didn't!
Other Man=> I'm telling you, I did!
Man=> You did not!
Other Man=> Oh I'm sorry, is this a five minute argument, or the full half hour?
Man=> Ah! (taking out his wallet and paying) Just the five minutes.
Other Man=> Just the five minutes. Thank you.
Other Man=> Anyway, I did.
Man=> You most certainly did not!

調用split方法時,由於存在在文本行中沒有特定的字符用於識別進行前後分割,如果調用split就會出錯基於上述問題,使用find方法先查找是否存在特定的分割字符,再調用split4. 異常處理:try/except機制

1. 慄子:打開一個不存在的文件進行讀取,出現IOError

the_file = open("sketch.txt", 'r')

for line_each in the_file:
    if not line_each.find(":") == -1:
        (role, line_spoken) = line_each.split(":", 1)

the_file.close()

Traceback (most recent call last):
  File "E:/Github/python/files_error/try_except/try_except.py", line 1, in <module>
    the_file = open("sketch.txt", 'r')
IOError: [Errno 2] No such file or directory: 'sketch.txt'

2. 如何處理IOError及其它的異常:try/except

try:
    the_file = open("sketch.txt", 'r')

except IOError as err:
    print("File error" + str(err))

I:\Projects\wifi\Ai-Thinker\AiThinkerIDE_V1.0\msys32\mingw32\bin\python.exe E:/Github/python/files_error/try_except/try_except.py
File error[Errno 2] No such file or directory: 'sketch.txt'

3. 如果文件打開失敗,然後調用close接口會出錯,使用locals()接口查看打開文件後的文件描述符是否存在來判斷文件是否打開成功

# encoding=UTF-8
# 打開文件時,如果文件不存在會出現IOError
try:
    the_file = open("sketch.txt", 'r')

except IOError as err:
    print("File error" + str(err))

# the_file的名字存在說明打開文件成功,否則打開失敗
if 'the_file' in locals():
    the_file.close()

# 打開文件失敗,判斷如果打開成功才關閉文件
I:\Projects\wifi\Ai-Thinker\AiThinkerIDE_V1.0\msys32\mingw32\bin\python.exe E:/Github/python/files_error/try_except/try_except.py
File error[Errno 2] No such file or directory: 'sketch.txt'

相關焦點

  • python教程之九錯誤和異常處理
    Python 有兩種錯誤很容易辨認:語法錯誤和異常。語法錯誤語法分析器指出了出錯的一行,並且在最先找到的錯誤的位置標記了顏色,如下所示。 異常Python 程序的語法是正確的,在運行它的時候,也有可能發生錯誤。運行期檢測到的錯誤被稱為異常。
  • python異常處理與上下文管理器
    異常處理異常與錯誤錯誤可以通過IDE或者解釋器給出提示的錯誤opentxt('a.jpg','r')語法層面沒有問題,但是自己代碼的邏輯有問題if age>18: print('未成年')異常多指在程序執行過程中,出現的未知錯誤,語法和邏輯本身是正確的。
  • python 異常處理
    看如下示例:print'test--1---' open('123.txt','r') print'test--2---'打開一個不存在的文件123.txt,當找不到123.txt 文件時,就會拋出給我們一個IOError類型的錯誤,No such file or directory:123.txt (沒有123.txt這樣的文件或目錄)異常:
  • Python文件和異常處理
    /test.txt", "r")# 「w」 以寫方式打開, 若test.txt不存在,則創建# 若test.txt存在則清空該文件input = open("./test.txt", "w")# 'a』是在文件尾部添加內容,不存在會創建文件,# 存在則直接在尾部進行添加;input = open("./test.txt", "a")# 'wb』是寫二進位文件;input = open(".
  • Python異常處理
    問題描述大家在使用python語言寫代碼的時候難免會出一些錯誤,而才入門的朋友們往往不知道是哪裡出了錯或者不知道自己錯在哪裡、什麼錯誤。所以我們要知道是哪行代碼出錯,其次室錯誤的類型是什麼,錯在那個細節,逐步分析,從而解決錯誤並改正。
  • Python學習第50課-處理錯誤和異常
    【每天幾分鐘,從零入門python編程的世界!】在工作當中會經常出現意料不到的錯誤和異常,就需要我們對可能出現的錯誤和異常進行預判,然後加上捕獲和處理錯誤異常的代碼,否則,程序在運行過程中,遇到錯誤和異常就會crash崩潰,無法繼續向下執行。●Python的錯誤種類:①語法錯誤,或稱解析錯誤。
  • 十、python基礎之異常處理結構與程序調試方法
    實驗目的:學習python的異常處理和程序調試實驗環境:已正確安裝python3.51、異常的基本概念異常是指程序運行時引發的錯誤,得不到正確的處理將會導致程序終止運行合理地使用異常處理結構可以使得程序更加健壯,具有更強的容錯性。例如:最常見的除數為0,python會拋出「ZeroDivisionError"異常。
  • python入門——Python中異常處理
    python大數據課堂已經開始了。想轉行大數據,數據挖掘,機器學習,人工智慧的小夥伴可以關注啦。上一篇帶大家了解了python中的I/O函數。今天我們來繼續了解python中的異常處理。調試環境以python3.6環境為例。需要代碼和demo的朋友可以搜索「欒鵬全棧」到我的CSDN博客。
  • 第16天:Python 錯誤和異常
    錯誤提示信息會告訴我們異常發生的上下文,並以調用棧的形式顯示具體信息,提示信息的最後一行開頭會顯示錯誤類型名稱,上例中,錯誤類型為'TypeError',表示類型異常。什麼是異常異常是一個事件,該事件會在程序執行過程中發生,從而影響程序的正常執行。當 Python遇到無法處理的程序時,就會引發一個異常。
  • python基礎---異常處理
    程序的異常處理今天霖小白心血來潮想來分享一下python基礎中的如何異常處理,使程序有更好的用戶體驗。前言python程序對用戶的輸入有一定的要求,所以當實際輸入不滿足程序要求時,可能在程序運行過程中會直接報錯無法進行下一步的運行。
  • 一篇文章幫你搞定Python異常處理
    異常與錯誤程序錯誤分類(兩類)語法錯誤(這種錯誤,根本過不了python解釋器的語法檢測,必須在程序執行前就改正)邏輯錯誤(邏輯錯誤)#用戶輸入不完整(比如輸入為空)或者輸入非法(輸入不是數字)num=input(">>: ")int(num)#無法完成計算res1=1/0res2
  • python面向對象之異常處理
    異常的概念 程序在運行時,如果 `Python 解釋器` 遇到 到一個錯誤,會停止程序的執行,並且提示一些錯誤信息,這就是 異常 程序停止執行並且提示錯誤信息 這個動作,我們通常稱之為:拋出(raise)異常> 程序開發時,很難將 所有的特殊情況 都處理的面面俱到,通過 異常捕獲 可以針對突發事件做集中的處理,從而保證程序的 穩定性和健壯性
  • python使用with as處理文件的讀寫
    文件處理的兩種情況:1、忘記關閉文件。2、文件讀寫異常,未做處理。在python中使用with語句,可以自動調用close()方法,同時也解決了異常問題。with open('test.txt','w') as f:f.write('Hello, python!')
  • python入門第十三課:文件的讀寫與分析介紹,異常處理和代碼重構
    接來下繼續學習更多應用操作,比如文件操作、數據存儲、異常處理等,這些技巧能讓我們快速的處理大量的數據,讓程序更加健壯。為了能讓程序繼續執行下去,我們要對異常進行處理,就叫異常處理。Python中用try-except代碼塊來處理異常,我們對上面代碼稍加改造,看看效果:try:print(5/0)except: print('發生了未知的錯誤
  • Python3快速入門知識點:異常處理、文件操作
    '''錯誤和異常語法錯誤SyntaxError 類表示語法錯誤,當解釋器發現代碼無法通過語法檢查時會觸發的錯誤。運行時發生的錯誤被稱為異常。錯誤信息的前面部分顯示了異常發生的上下文,並以調用棧的形式顯示具體信息。
  • python入門學習異常處理類型
    前言異常是指在程序執行過程中發生的一個事件,影響了程序的正常執行,例如:0做了分母。異常是Python對象,表示一個錯誤。當Python腳本發生異常時我們需要捕獲處理它,否則程序會終止執行。在Java語言中我們知道異常的常用結構為try catch組成,有時也會用到finally,那麼在python中異常是如何來處理的呢?python中的異常處理1.python異常簡單語法python異常的簡單語法為try-except-else語法,注意這裡的關鍵字是except而不是Exception,這與java是有區別的。
  • [Python學習筆記]Python基礎10之錯誤與異常處理
    句法錯誤又稱解析錯誤,它是學習 Python 時最常見的錯誤,如下示例:解析器會復現句法錯誤的那行代碼,並用一個「箭頭」指向行裡檢測到的第一個錯誤,錯誤是由箭頭上方的位置產生的,本例中錯誤原因為:`SyntaxError`同時錯誤信息中還會輸出文件名與行號及簡單說明,方便我們查找錯誤很多時候即使語句或表達式在語法上是正確的,但在嘗試執行時,它仍可能會引發錯誤
  • Python 處理錯誤的原則 | Linux 中國
    https://linux.cn/article-13058-1.html作者:Moshe Zadka譯者:Xingyu.Wang處理「異常情況」是編程中爭論最多的問題之一。這可能是因為風險很大:處理不當的錯誤值甚至可以使龐大的系統癱瘓。
  • python妙招-異常處理之try-except
    Python中檢測處理異常是非常重要的,這可以增加代碼的健壯性,我們在寫python程序的時候,會可能會遇到一些不可預料的情況,一旦遇到這些情況,運行時程序便可能會崩潰。比如:讀寫文件時候文件打開錯誤或者文件寫入錯誤,寫爬蟲時網絡請求失敗,返回錯誤404.再或者函數處理一些不確定參數時候,都可以用到異常捕獲。
  • 【Python基礎】10 異常處理
    一 什麼是異常異常是程序發生錯誤的信號。程序一旦出現錯誤,便會產生一個異常,若程序中沒有處理它,就會拋出該異常,程序的運行也隨之終止。在Python中,錯誤觸發的異常如下插圖:異常處理二 異常處理為了保證程序的容錯性與可靠性,即在遇到錯誤時有相應的處理機制不會任由程序崩潰掉,我們需要對異常進行處理,處理的基本形式為