python之文件路徑與異常處理


python之文件路徑與異常處理

一、文件路徑

1、__file__:指當前文件的路徑

2、os.path.abspath/os.path.realpath:獲取絕對路徑

os.path.abspath(__file__):獲取當前文件的絕對路徑

3、os.path.dirname:獲取父目錄路徑

os.path.dirname(__file__):獲取當前文件路徑的父目錄路徑

4、os.path.join(path1[, path2[, ...]]):拼接路徑,拼接路徑只能一級一級的拼接

5、os.mkdir(path):在指定的路徑下創建目錄

6、os.rmdir(path):刪除目錄

7、os.path.exits(path):指定path是否存在,輸出bool,如果path存在,返回True;如果path不存在,返回False

8、os.path.isfile(path):指定path是否為file,輸出bool,如果path為file,返回True,如果path不為file,返回False

9、os.path.isdir(path):指定path是否為目錄,輸出bool,如果path為目錄,返回True,如果path不為目錄,返回False

10、os.path.split(path):將path分割成目錄和文件名二元組返回。

11、os.path.basename(path):獲取文件名

黑色加粗的是比較常用的

二、異常處理

1、異常:python異常就是python程序運行的過程中發生的錯誤

2、異常處理的作用:發生異常程序會終止運行,所以異常處理的作用就是防止程序的終止,讓程序正常運行

3、異常捕獲以及處理

1)

try:

  ...未發生異常時運行的代碼...

except:

  ...發生異常,捕獲成功后運行的代碼...

2) Exception為萬能異常基類,當捕獲指定基類異常的時候盡量不要使用萬能異常基類,異常一個一個去捕獲會要好些

try:

  ...

except Exception as e: # 此處e是別名,可打印出異常的具體信息。

  print(e)

3)可捕獲多個異常,進行處理,try語句中,可有多個except,但每次try語句運行后發出錯誤只能捕獲到一個指定的異常,因為python語句運行是從上往下運行的。

try:

  ...

except NameError:

  ...

except ValueError:

  ...

 4)try...except...finally

try:下面放需要監控的代碼

except:處理捕捉到的錯誤異常

finally:不管try下面的代碼是否會遇到異常,finally下面的代碼一定會執行

5)try...except...else

try:下面放需要監控的代碼

except:處理捕捉到的錯誤異常

else:如果try下面的代碼沒有發生異常,那么就繼續執行else下面的代碼,否則就不執行

 

4、異常基類

1)Exception:萬能異常基類,常規異常基類

2)NameError:未定義變量

3)ValueError:傳入的參數有誤,雖然參數符合,但是參數的值卻是不想要的,比如int("a")

4)TypeError:數據類型錯誤,如:"a" + 1 傳入的是字符串,或者int,類型不符合要求

5)KeyError:映射關系中沒有這個key

6)IndexError:索引不存在

7)IOError:輸入輸出錯誤

8)SyntaxError:python語法錯誤,不能被try捕獲到

9)ZeroDivisionError:除(或取模)零(所有數據類型)

10) AssertionError:斷言語句失敗

11)ImportError:導入模塊/對象失敗

12)AttributeError:對象沒有這個屬性

 

5、異常的拋出:raise 將錯誤往上拋,相當於自首,raise的作用就是把異常處理中的錯誤拋出來,讓我們看到traceback信息,一般都是在我們處理完異常信息后,我們可以把錯誤拋出,在后期的單元測試中生成測試報告用的比較多

raise ValueError("數據類型錯誤!")

6、分組捕獲

1)異常也是可以分組的,因為異常也分等級,分組進行處理(bug等級)

2)try...except (異常類型1,異常類型2) as err:將異常類型1和異常類型2看做是同一個等級的異常(如都是致命的異常/嚴重的異常),進行相同處理


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM