python基礎之模塊part1
阿新 • • 發佈:2017-06-25
lines name ret base md5值 數據轉換 技術 開始 std
模塊:
模塊本質上就是一個Python程序。
所有說是對象的,一定可以通過 對象.方法 來實現某些操作。
模塊種類:
內置模塊
第三方模塊
自定義模塊
import在查找模塊的順序:內置模塊---->第三方模塊---->自定義模塊。
後期學習網絡編程(socket)跟線程進程(threading processing)的時候其實就是在學習這些模塊。
time:
在Python中時間也是一個類。
時間有三種類型:
時間戳:時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。使用time.time()查看的時間戳是一個浮點型數據
結構化時間:元組的形式,共有九個元素
字符串時間:方便人們閱讀的格式。例如:‘2017-06-21 19:31:18‘
示例:
import time print(time.time()) print(time.localtime()) print(time.strftime("%Y-%m-%d %X")) 執行結果: D:\Python\Python36-32\python.exe E:/Python/DAY-12/time模塊.py 1498045508.7362208 time.struct_time(tm_year=2017, tm_mon=6, tm_mday=21, tm_hour=19, tm_min=45, tm_sec=8, tm_wday=2, tm_yday=172, tm_isdst=0) 2017-06-21 19:45:08 Process finished with exit code 0
三種類型的轉換:
import time print(time.localtime(time.time())) #轉換時間戳為結構化時間 print(time.mktime(time.localtime(time.time()))) #轉換結構化時間為時間戳 print(time.strftime(‘%Y-%m-%d‘,time.localtime(time.time()))) #轉換結構化時間為 字符串時間 print(time.strptime(‘2017-06-22‘,‘%Y-%m-%d‘)) #轉換字符串時間為結構化時間 執行結果: D:\Python\Python36-32\python.exe E:/Python/DAY-12/time模塊.py time.struct_time(tm_year=2017, tm_mon=6, tm_mday=21, tm_hour=19, tm_min=50, tm_sec=45, tm_wday=2, tm_yday=172, tm_isdst=0) 1498045845.0 2017-06-21 time.struct_time(tm_year=2017, tm_mon=6, tm_mday=22, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=173, tm_isdst=-1) Process finished with exit code 0
還有一種固定字符串結構的轉換:
import time print(time.asctime(time.localtime(3212334241))) #結構化時間轉換為固定格式字符串時間 print(time.ctime(3213213321)) #時間戳時間轉換為固定格式字符串時間 執行結果: D:\Python\Python36-32\python.exe E:/Python/DAY-12/time模塊.py Sun Oct 18 03:04:01 2071 Wed Oct 28 07:15:21 2071 Process finished with exit code 0
其他的方法:
import time start = time.time() time.sleep(5) #暫停指定的時間後繼續運行,單位為秒 stop = time.time() print(‘睡了%s秒‘%(stop-start)) 執行結果: D:\Python\Python36-32\python.exe E:/Python/DAY-12/time模塊.py 睡了5.000530958175659秒 Process finished with exit code 0
random:
隨機生成模塊。
>>> import random >>> random.random() # 大於0且小於1之間的小數 0.7664338663654585 >>> random.randint(1,5) # 大於等於1且小於等於5之間的整數 >>> random.randrange(1,3) # 大於等於1且小於3之間的整數 >>> random.choice([1,‘23‘,[4,5]]) # #1或者23或者[4,5] >>> random.sample([1,‘23‘,[4,5]],2) # #列表元素任意2個組合 [[4, 5], ‘23‘] >>> random.uniform(1,3) #大於1小於3的小數 1.6270147180533838 >>> item=[1,3,5,7,9] >>> random.shuffle(item) # 打亂次序 >>> item [5, 1, 3, 7, 9] >>> random.shuffle(item) >>> item [5, 9, 7, 1, 3]
一個簡單的隨機驗證碼生成器:
import random def valdate_code(): ret = ‘‘ for i in range(5): num = random.randint(0,9) a1 = chr(random.randint(97,122)) a2 = chr(random.randint(65,90)) s = random.choice([str(num),a1,a2]) ret = ret+s return ret print(valdate_code())
hashlib:
hashlib提供了常見的摘要算法,如MD5,SHA1等。
摘要算法又稱哈希算法,散列算法。通過一個函數把任意長度的數據轉換為一個長度固定的數據串。
摘要算法是單向的不可逆的。
應用:文件一致性校驗,登錄
示例:計算一段字符串的MD5值
import hashlib md5 = hashlib.md5() #可以在這裏的括號內進行“加鹽處理” 註:加鹽處理就是指在原有的內容上在加上一段字符串,提高校驗值的復雜性 md5.update(‘how to use md5 in python hashlib?‘) #update接收信息可以重疊接收 print md5.hexdigest() #顯示摘要信息 執行結果: d26a53750bc40b38b65a520292f69306
os:
操作系統模塊。
操作系統提供的一些接口,Python來調用。
os.getcwd() 獲取當前工作目錄,即當前python腳本工作的目錄路徑 os.chdir("dirname") 改變當前腳本工作目錄;相當於shell下cd os.curdir 返回當前目錄: (‘.‘) os.pardir 獲取當前目錄的父目錄字符串名:(‘..‘) os.makedirs(‘dirname1/dirname2‘) 可生成多層遞歸目錄 os.removedirs(‘dirname1‘) 若目錄為空,則刪除,並遞歸到上一級目錄,如若也為空,則刪除,依此類推 os.mkdir(‘dirname‘) 生成單級目錄;相當於shell中mkdir dirname os.rmdir(‘dirname‘) 刪除單級空目錄,若目錄不為空則無法刪除,報錯;相當於shell中rmdir dirname os.listdir(‘dirname‘) 列出指定目錄下的所有文件和子目錄,包括隱藏文件,並以列表方式打印 os.remove() 刪除一個文件 os.rename("oldname","newname") 重命名文件/目錄 os.stat(‘path/filename‘) 獲取文件/目錄信息 os.sep 輸出操作系統特定的路徑分隔符,win下為"\\",Linux下為"/" os.linesep 輸出當前平臺使用的行終止符,win下為"\t\n",Linux下為"\n" os.pathsep 輸出用於分割文件路徑的字符串 win下為;,Linux下為: os.name 輸出字符串指示當前使用平臺。win->‘nt‘; Linux->‘posix‘ os.system("bash command") 運行shell命令,直接顯示 os.environ 獲取系統環境變量 os.path.abspath(path) 返回path規範化的絕對路徑 os.path.split(path) 將path分割成目錄和文件名二元組返回 os.path.dirname(path) 返回path的目錄。其實就是os.path.split(path)的第一個元素 os.path.basename(path) 返回path最後的文件名。如何path以/或\結尾,那麽就會返回空值。即os.path.split(path)的第二個元素 os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False os.path.isabs(path) 如果path是絕對路徑,返回True os.path.isfile(path) 如果path是一個存在的文件,返回True。否則返回False os.path.isdir(path) 如果path是一個存在的目錄,則返回True。否則返回False os.path.join(path1[, path2[, ...]]) 將多個路徑組合後返回,第一個絕對路徑之前的參數將被忽略 os.path.getatime(path) 返回path所指向的文件或者目錄的最後存取時間 os.path.getmtime(path) 返回path所指向的文件或者目錄的最後修改時間 os.path.getsize(path) 返回path的大小
python基礎之模塊part1