標籤:ctime font strong 規範 win argv 實現 base 產生
time.asctime(time.localtime(1234324422))
python——常用模組
1 什麼是模組:
模組就是py檔案
2 import time #匯入時間模組
在Python中,通常有這三種方式來表示時間:時間戳記、元組(struct_time)、格式化的時間字串:
(1)時間戳記(timestamp) :通常來說,時間戳記表示的是從1970年1月1日00:00:00開始按秒計算的位移量。我們運行“type(time.time())”,返回的是float類型。
(2)格式化的時間字串(Format String): ‘1988-03-16’
(3)元組(struct_time) :struct_time元組共有9個元素共九個元素:(年,月,日,時,分,秒,一年中第幾周,一年中第幾天等)
<1>時間戳記
import time
time.time() #返回目前時間的時間戳記>>>1493191228.100598
<2>時間字串
time.strftime(“%Y-%m-%d”%X”)>>>‘2017-04-26 15:24:05‘
<3>時間元祖
time.localtime()>>> time.struct_time(tm_year=2017, tm_mon=4, tm_mdec=25, tm_wday=2, tm_yday=116, tm_isdst=0)
小結:時間戳記是電腦能夠識別的時間;時間字串是人能夠看懂的時間;元組則是用來操作時間的
2.1 幾種時間形式的轉換
<1>時間戳記轉換成結構化時間
time.localtime(time.time())>>> time.struct_time(tm_year=2017, tm_mon=4, tm_mday=26, tm_hour=15, tm_min=48, tm_s=57, tm_wday=2, tm_yday=116, tm_isdst=0)
結構化時間轉換成時間戳記
time.mktime(time.localtime())1493215930.0
<2>字串時間轉換成結構化時間
time.strftime("%Y-%m-%d %X", time.localtime())‘2017-04-26 22:16:05‘
結構時間轉換成化字串時間
time.strptime("2017-03-16","%Y-%m-%d")
2.2
time.ctime()
>>> ‘wed Apr 26 16:05:52 2017’
time.asctime(time.localtime(1234324422))
1 #--------------------------其他方法
2 # sleep(secs)
3 # 線程延遲指定的時間運行,單位為秒。
3 random 隨機模組
import random #匯入模組 random.random() #浮點小數print(random.random())random.randint(1,4)print(random.randint(1,4)) #1—4 數字之間隨機出現random.randrange(1,3)print(random.randrange(1,3)) #顧頭不顧尾取值 1,2數字random.choice([1,2,5])print(random.choice([1,2,5])) #取1,2,5的值 列表元素random.sample([1,3,5],2)print(random.sample([1,3,5],2)) #列表元素 任意2個組合random.uniform(1,4)print(random.uniform(1,4)) #小於4大於1的小數item=[4,1,3,2]random.shuffle(item) #打亂次序print(item)
練習 產生驗證碼功能
import randomdef v_code(): s="" for i in range(5): rNUM=random.randint(0,9) rA=chr(random.randint(65,90)) rZ=chr(random.randint(97,122)) ret=random.choice([rNUM,rA,rZ]) s+=str(ret) return sprint(v_code())
4 hashilib #摘要演算法
1、演算法介紹
Python的hashlib提供了常見的摘要演算法,如MD5,SHA1等等
什麼是摘要演算法呢?摘要演算法又稱雜湊演算法、散列演算法。它通過一個函數,把任意長度的資料轉換為一個長度固定的資料串(通常用16進位的字串表示)。
摘要演算法就是通過摘要函數f()對任意長度的資料data計算出固定長度的摘要digest,目的是為了發現未經處理資料是否被人篡改過。
摘要演算法之所以能指出資料是否被篡改過,就是因為摘要函數是一個單向函數,計算f(data)很容易,但通過digest反推data卻非常困難。而且,對未經處理資料做一個bit的修改,都會導致計算出的摘要完全不同。
我們以常見的摘要演算法MD5為例,計算出一個字串的MD5值:
#資料量大 可以分塊多次調用update(),最後的值是一樣的
import hashlibm=hashlib.md5()m.update(b‘hello python‘)m.update(b"hello")print(m.hexdigest())
#名字一樣但是最後列印的值不一樣
m=hashlib.md5()m.update(b"alex")print(m.hexdigest())m.update(b"alex")print(m.hexdigest())
#兩者用途一樣 shal與md5
import hashlibsha1 = hashlib.sha1()sha1.update(b‘how to use sha1 in ‘)sha1.update(b‘python hashlib?‘)print(sha1.hexdigest())
2、摘要演算法應用
由於常用口令的MD5值很容易被計算出來,所以,要確儲存儲的使用者口令不是那些已經被計算出來的常用口令的MD5,這一方法通過對原始口令加一個複雜字串來實現,俗稱“加鹽”:
hashlib.md5("salt".encode("utf8"))
5 os模組是與作業系統互動的一個介面
import os #匯入模組
‘‘‘os.getcwd() 擷取當前工作目錄,即當前python指令碼工作的目錄路徑os.chdir("dirname") 改變當前指令碼工作目錄;相當於shell下cdos.curdir 返回目前的目錄: (‘.‘)os.pardir 擷取目前的目錄的父目錄字元串名:(‘..‘)os.makedirs(‘dirname1/dirname2‘) 可產生多層遞迴目錄os.removedirs(‘dirname1‘) 若目錄為空白,則刪除,並遞迴到上一級目錄,如若也為空白,則刪除,依此類推os.mkdir(‘dirname‘) 產生單級目錄;相當於shell中mkdir dirnameos.rmdir(‘dirname‘) 刪除單級空目錄,若目錄不為空白則無法刪除,報錯;相當於shell中rmdir dirnameos.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不存在,返回Falseos.path.isabs(path) 如果path是絕對路徑,返回Trueos.path.isfile(path) 如果path是一個存在的檔案,返回True。否則返回Falseos.path.isdir(path) 如果path是一個存在的目錄,則返回True。否則返回Falseos.path.join(path1[, path2[, ...]]) 將多個路徑組合後返回,第一個絕對路徑之前的參數將被忽略os.path.getatime(path) 返回path所指向的檔案或者目錄的最後存取時間os.path.getmtime(path) 返回path所指向的檔案或者目錄的最後修改時間os.path.getsize(path) 返回path的大小‘‘‘
6 sys 模組 跟解譯器打交道
import sys #匯入模組
sys.argv 命令列參數List,第一個元素是程式本身路徑sys.exit(n) 退出程式,正常退出時exit(0)sys.version 擷取Python解釋程式的版本資訊sys.maxint 最大的Int值sys.path 返回模組的搜尋路徑,初始化時使用PYTHONPATH環境變數的值sys.platform 返回作業系統平台名稱
python——常用模組