文件是計算機中數據持久化存儲的表現形式python
格式一(手工關閉格式):windows
1.打開文件: file = open("文件名","讀/寫模式")
2.操做文件:*
3.關閉文件:file.close()
複製代碼
格式二(免關閉格式):緩存
1.打開文件: with open("文件名","讀/寫模式") as file:
2.操做文件:*
3.關閉文件(自動關閉文件)
複製代碼
注意: 文件操做完畢後必須關閉,不然內存將長期保持對文件的鏈接狀態, 形成內存溢出的現象發生。函數
文件在計算機存儲器(例如硬盤)中保存的位置稱爲文件路徑spa
相對路徑:從程序運行所在的目錄位置描述其它文件的保存路徑設計
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
""" 案例: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()
複製代碼
異常是程序執行過程當中出現的非正常流程現象。對象
異常是沒法避免的,只能先預估出可能出現的異常現象,並提供對應的處理機制,在異常出現後保障程序不被中斷執行。
格式一(經常使用):
try:
可能引起異常現象的代碼
except:
出現異常現象的處理代碼
複製代碼
格式二(不經常使用):
try:
可能引起異常現象的代碼
finally:
try代碼塊結束後運行的代碼
複製代碼
格式三(完整格式):
try:
____可能引起異常現象的代碼
except:
____出現異常現象的處理代碼
else:
____未出現異常現象的處理代碼
finally:
____try代碼塊結束後運行的代碼
複製代碼
各代碼塊功能與執行說明:
異常處理能夠根據不一樣種類的異常進行不一樣的處理方案設計,使用異常名稱來進行區分。標準格式以下:
except 異常類名1 as 變量名:
____出現異常現象的處理代碼
except 異常類名2 as 變量名:
____出現異常現象的處理代碼
except 異常類名3 as 變量名:
____出現異常現象的處理代碼
except Exception as 變量名:
____出現異常現象的處理代碼
複製代碼
說明:
1.經過異常類名後面的變量名能夠獲取到具體異常信息
2.執行了某個except中的內容後,其餘except中的內容將再也不執行3.Exception類是全部異常類的父類,可以攔截全部的異常現象,一般設置成最後一級的捕獲
異常現象可使用主動爬出的形式來構造,語法格式以下:
raise 異常類對象
注意:異常對象使用raise拋出時,一般是知足某中狀況時拋出,不然將會出現程序執行到此處一定拋出異常。異常出現後若是沒有被捕獲處理,該異常將會繼續向下傳遞,到下一次調用位置。
狀況一:使用try嵌套繼續處理
狀況二:函數/方法間調用,在任意調用位置處理最後調用處理
中間調用處理
class 自定義異常類名(Exception):
pass
複製代碼
raise 異常類對象
複製代碼
模塊指包含了Python程序的源文件,每個獨立的.py文件具備特定的功能,其功能能夠被其它Python程序使用,該文件就構成了一個模塊
模塊的名稱必須知足標識符命名規則
模塊中能夠被外界使用的資源:類(定義)、函數、變量(全局)
格式一(所有導入):
import 模塊名
複製代碼
模塊資源使用的格式:
模塊名.類名
模塊名.函數名
模塊名.變量名
複製代碼
格式二(局部/所有導入):
from 模塊名稱 import 資源名稱
from 模塊名稱 import 資源名稱1,資源名稱2
from 模塊名稱 import *
複製代碼
模塊資源使用格式:
類名(直接使用)
函數名(直接使用)
變量名(直接使用)
複製代碼
注意:若是屢次導入模塊中具備同名的資源,後導入的模塊資源覆蓋先導入的模塊資源
若是使用格式二中的所有資源導入方式
from 模塊名稱 import *
複製代碼
能夠在模塊文件中第一行設置資源訪問控制
__all__ = ["資源名稱1","資源名稱2"]
複製代碼
說明:__all__列表中出現名稱的資源能夠在其它文件中使用
導入模塊的同時會將原模塊對應的.py文件進行執行,包括書寫的運行代碼,經過下列方式屏蔽原始模塊中的運行代碼:
if __name__ == "__main__":
執行代碼
複製代碼
模塊資源導入時,解釋器第一次地區原始資源文件,並生成緩存文件。再次使用時直接使用緩存文件,加速程序執行。
包就是項目結構中的文件夾/目錄
包用於將不一樣的模塊進行分類管理,包自己不具備具體的含義,僅用於文件分紅管理
注意事項:放入包中的模塊使用時須要字模塊名前面添加包名,中間使用.分割