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看做是同一個等級的異常(如都是致命的異常/嚴重的異常),進行相同處理