一、模組和包
1.命名空間
有3類命名空間, 分別為內建命名空間, 全域命名空間, 局部命名空間。 內建命名空間在Python解譯器啟動時創建, 全域命名空間在該模組被導入時創建, 他倆都會 一直保持到解譯器退出。 局部命名空間在函數被調用時創建, 返回或引發異常時刪除。
2.模組
把一組相關的名稱, 函數, 類或者他們的組合組織到一個檔中。 檔是實體層上組織模組的方法。 一個檔被看做一個獨立的模組。
導入模組:
import module1
import module2 或者
import module1,module2
當出現導入模組失敗時, 可能的原因是模組不在搜素路徑裡, 從而導致了路徑搜素的失敗。
import sys
sys.path.append('包存儲路徑')
或者設置PYTHONPATH環境變數
還可以導入指定函數或者模組。
from module import name1,name2
如果需要把指定模組的所有屬性都導入到當前名稱空間可使用
from module import *
可使用 import Mymodule as mm 來指定局部綁定名稱。
模組導入的特性:
1)載入時執行模組
2)一個模組無論被導入多少次, 都只會載入一次。
二、異常
1. try ...except語句
try:
except 異常類1[,異常資訊變數]:
except 異常類2[,異常資訊變數]:
2.try ...except...else語句
使用與1相似, 只是try語句沒有發生異常時, 程式跳過所有的except執行else子句中的代碼。
3.try ...except...finally語句
使用與1相似, 無論是否發生異常, finally中的語句肯定會被執行。
4.拋出異常 raise 異常類[, 異常參數]
5.自訂異常, 必須繼承Exception或者BaseException
class UserInfoError(Exception):
def __init__(self,code,message):
self.code=code
self.message=message
def __str__(self):
errorJsonInfo = '{"code":"%d","message":"%s"}' %(self.code,self.message)
return errorJsonInfo
三、文件
1.打開, 可以使用open 或者file內建函數打開 open(filename,accessmode='r',buffering=-1),accessmode表示打開的模式, 可選參數為‘r’, ‘w’, ‘a’等。 buffering表示緩衝方式, 0表示不緩衝, 1表示只緩衝一行資料,
例如:
file1=open('1.jpg','rb')2.關閉 使用close函數關閉檔
3.讀寫
1)文件的讀取, 分別是read,readline,readlines
read([size]):有一個可選參數size, 表示讀取前size個長度的內容。 參數不指定或指定負值, 將讀取檔的所有內容。
readline([size]):這個size與read函數的不同, 他是指讀取指針指定行的前size個位元組的長度。
readlines:一次性讀取當前位置指標指向處後面的所有內容, 函數返回的是一個每行資料組成的一個清單。
2)寫入, 使用write函數和writelines函數
write:把一個字串寫入到檔中
WriteLines:把清單中的字串內容寫到檔中
3)檔的定位
fileRef.seek(offset,startpoint=0), startpoint用0,1,2代替, 0表示檔開始, 1表示當前位置, 2表示檔末尾, 默認為0.offset表示以startpoint為基點, 往後移動的位元組數
fileRef.tell:得到位置指標的當前位置, 相對於檔開頭的位移量。