1. 程式人生 > >python基礎之模塊part1

python基礎之模塊part1

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