文件、異常處理、模塊與包

1. 文件操做

1.1 文件的概念

文件是計算機中數據持久化存儲的表現形式python

1.2 文件操做基本語法

格式一(手工關閉格式):windows

1.打開文件: file = open("文件名","讀/寫模式")
2.操做文件:*
3.關閉文件:file.close()
複製代碼

格式二(免關閉格式):緩存

1.打開文件: with open("文件名","讀/寫模式") as file:
2.操做文件:*
3.關閉文件(自動關閉文件)
複製代碼

注意: 文件操做完畢後必須關閉,不然內存將長期保持對文件的鏈接狀態, 形成內存溢出的現象發生。函數

1.3 文件讀寫模式

1.4 讀文件操做

1.5 寫文件操做

2. 文件路徑

2.1 文件路徑概念

文件在計算機存儲器(例如硬盤)中保存的位置稱爲文件路徑spa

2.2 文件路徑的分類

相對路徑:從程序運行所在的目錄位置描述其它文件的保存路徑設計

cc.txt 當前目錄下的cc.txt
aa\\cc.txt 當前目錄下的aa目錄下的cc.txt
aa/cc.txt 當前目錄下的aa目錄下的cc.txt

絕對路徑:從系統定義的存儲位置描述文件的保存路徑3d

D:\aa\bb\cc.txtcode

D:/aa/bb/cc.txt (推薦)cdn

3. 文件的相關操做

3.1 os模塊相關操做

""" 案例:windows複製文件 分析: 1. 總體文件複製採用 rb wb模式進行 2. 複製文件須要更更名稱,變化是有規則的 3. 1.txt -> 1 - 副本.txt """
file1 = open("d:/1.txt","rb")
file2 = open("d:/2.txt","wb")

while True:
    info = file1.read(1024)
    if len(info) == 0:
        break
    else:
        file2.write(info)
        
file1.close()
file2.close()

""" 案例:windows複製文件(版本二) 分析: 1. 總體文件複製採用 rb wb模式進行 2. 複製文件須要更更名稱,變化是有規則的 3. 1.txt -> 1 - 副本.txt """
file1_name = "d:/1.txt"
idx = file1_name.rfind(".")
# print(file1_name[0:idx])
# print(file1_name[idx:])
file2_name = file1_name[0:idx]+ " - 副本" + file1_name[idx:]

file1 = open(file1_name,"rb")
file2 = open(file2_name,"wb")

while True:
    info = file1.read(1024)
    if len(info) == 0:
        break
    else:
        file2.write(info)

file1.close()
file2.close()

複製代碼

4. 異常處理

4.1 異常概念

異常是程序執行過程當中出現的非正常流程現象。對象

異常是沒法避免的,只能先預估出可能出現的異常現象,並提供對應的處理機制,在異常出現後保障程序不被中斷執行。

4.2 異常處理基本語法

格式一(經常使用):

try:
    可能引起異常現象的代碼
except:
    出現異常現象的處理代碼
複製代碼

格式二(不經常使用):

try:
    可能引起異常現象的代碼
finally:
    try代碼塊結束後運行的代碼
複製代碼

格式三(完整格式):

try:			 
____可能引起異常現象的代碼		  
except:
____出現異常現象的處理代碼
else:
____未出現異常現象的處理代碼
finally:
____try代碼塊結束後運行的代碼
複製代碼

各代碼塊功能與執行說明:

4.3 異常精細化處理

異常處理能夠根據不一樣種類的異常進行不一樣的處理方案設計,使用異常名稱來進行區分。標準格式以下:

except 異常類名1 as 變量名:
____出現異常現象的處理代碼
except 異常類名2 as 變量名:
____出現異常現象的處理代碼
except 異常類名3 as 變量名:
____出現異常現象的處理代碼
except Exception as 變量名:
____出現異常現象的處理代碼
複製代碼

說明:

1.經過異常類名後面的變量名能夠獲取到具體異常信息

2.執行了某個except中的內容後,其餘except中的內容將再也不執行

3.Exception類是全部異常類的父類,可以攔截全部的異常現象,一般設置成最後一級的捕獲

4.4 異常對象主動拋出

異常現象可使用主動爬出的形式來構造,語法格式以下:

raise 異常類對象

注意:異常對象使用raise拋出時,一般是知足某中狀況時拋出,不然將會出現程序執行到此處一定拋出異常。

4.5 異常處理傳遞

異常出現後若是沒有被捕獲處理,該異常將會繼續向下傳遞,到下一次調用位置。

狀況一:使用try嵌套繼續處理

狀況二:函數/方法間調用,在任意調用位置處理

最後調用處理

中間調用處理

5.自定義異常

5.1 自定義異常基本語法

class 自定義異常類名(Exception):
    pass
複製代碼

5.2 自定義異常主動觸發

raise 異常類對象
複製代碼

6. 模塊

6.1 模塊概念

模塊指包含了Python程序的源文件,每個獨立的.py文件具備特定的功能,其功能能夠被其它Python程序使用,該文件就構成了一個模塊

模塊的名稱必須知足標識符命名規則

6.2 模塊中的資源

模塊中能夠被外界使用的資源:類(定義)、函數、變量(全局)

6.3 模塊資源導入

格式一(所有導入):

import 模塊名
複製代碼

模塊資源使用的格式:

模塊名.類名
模塊名.函數名
模塊名.變量名
複製代碼

格式二(局部/所有導入):

from 模塊名稱 import 資源名稱
from 模塊名稱 import 資源名稱1,資源名稱2
from 模塊名稱 import *
複製代碼

模塊資源使用格式:

類名(直接使用)
函數名(直接使用)
變量名(直接使用)
複製代碼

注意:若是屢次導入模塊中具備同名的資源,後導入的模塊資源覆蓋先導入的模塊資源

6.4 局部導入資源訪問控制

若是使用格式二中的所有資源導入方式

from 模塊名稱 import *
複製代碼

能夠在模塊文件中第一行設置資源訪問控制

__all__ = ["資源名稱1","資源名稱2"]
複製代碼

說明:__all__列表中出現名稱的資源能夠在其它文件中使用

6.5 模塊文件的執行代碼處理

導入模塊的同時會將原模塊對應的.py文件進行執行,包括書寫的運行代碼,經過下列方式屏蔽原始模塊中的運行代碼:

if __name__ == "__main__":
    執行代碼
複製代碼

6.6 模塊資源運行工做原理

模塊資源導入時,解釋器第一次地區原始資源文件,並生成緩存文件。再次使用時直接使用緩存文件,加速程序執行。

7. 包

7.1 包的概念

包就是項目結構中的文件夾/目錄

7.2 包的做用

包用於將不一樣的模塊進行分類管理,包自己不具備具體的含義,僅用於文件分紅管理

注意事項:放入包中的模塊使用時須要字模塊名前面添加包名,中間使用.分割

相關文章
相關標籤/搜索