python——常用模組

來源:互聯網
上載者:User

標籤: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——常用模組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.