python常用的內建函式
阿新 • • 發佈:2021-01-25
python有許多的內建模組,出來python自帶的,還有許多的第三方模組,下面我們就來看看python常用的模組吧。
os(系統進行交換的模組)與sys
os模組:
import os
#print(os.getcwd())#獲取當前目錄路徑,或指令碼路徑
#print(os.listdir())#獲取當前和所有的檔案
#os.remove("檔名")#刪除檔案
#os.remove(r"c:\目錄名")刪除目錄
#os.system("ipconfig")#執行shell命令,檢視網絡卡
#os. remove("lx.py","haha.py")#修改檔名稱
#os.mkdirs("c/d/e/f/g")#建立多個目錄
print(os.stat("lx.py"))#獲取檔案屬性
os.path(os中的一個單獨的子模組)
#os.path.isfile("檔名")#判斷是否為一個檔案
#os.path.isdir("目錄名稱")#判斷是否為目錄
#os.path.exists('路徑名稱')#判斷路徑是否存在
#print(os.path.abspath("lx.py" ))#獲取絕對路徑
#print(os.path.basename("lx.py"))#只獲取檔名稱
|-- join(路徑,*路徑)
#連線兩個(或多個)路徑。
|-- split(路徑)
#返回元組(頭,尾),尾是最後一個斜槓之後的所有內容。
sys模組:
import sys
print(sys.path)#獲取系統環境變數
print(sys.argv)#獲取指令碼引數
|-- sys.api_version # 獲取python核心程式碼版本號
|-- exit() # 退出系統
|-- getdefaultencoding() #返回Unicode所使用的當前預設字串編碼
實現。
| -- getfilesystemencoding() #返回用於轉換Unicode檔名的編碼
作業系統檔名。
|-- getrecursionlimit() #返回遞迴限制的當前值,即最大深度
Python直譯器堆疊的。這個極限阻止了無窮大遞迴避免導致C棧溢位和Python崩潰。
|-- getrefcount() # 獲取引用計數的個數
|-- setrecursionlimit() #將Python直譯器堆疊的最大深度設定為n
limit防止無限遞迴導致C溢位堆疊和崩潰的Python。最高可能的限制是平臺-
相關的。
|-- stdin # 標準輸入流(standard input)
|-- stdout # 標準輸出流(standard output)
random模組
import random
random.randrange(1,10)#返回隨機數,不包括10
random.randint(1,10)#返回隨機數,包括10
print(random.randrange(1,100,2))#隨機選取1——10的偶數
random.random()#隨機返回一個浮點數
random.choice("absdcenercrn")#返回給定區間內的隨機字元
print(random.sample("sxmssnxneinx",3))#從多箇中選取特定數量的字元
#洗牌
a=[1,2,3,4,5,6,7,8,9]
random.shuffle(a)#隨機打亂列表
print(a)
'''
現象:[4, 1, 3, 7, 5, 2, 8, 9, 6]
'''
math模組(數學模組)
三角函式相關的:
acos(返回x的反餘弦(以弧度為單位))
acosh (返回x的反雙曲餘弦。)
asin ( 返回x的反正弦(以弧度為單位))。
asinh (返回x的反雙曲正弦。)
atan (返回x的反正切(以弧度為單位)。
cos (返回x的餘弦值(以弧度為單位))
sin (返回x的正弦值(以弧度為單位))
tan (返回x的正切(以弧度為單位))
|-- ceil # 向上取整
|-- floor # 向下取整
|-- fabs #返回浮點數x的絕對值。
|-- pow # 冪次方
|-- sqrt # 開平方根
time
|-- asctime([tuple]) # 把當前時間以字串格式展示
|-- ctime([seconds]) # 把當前時間以字串格式展示
|-- gmtime() # 構建一個時間物件(元組物件)(year, mon, day, hours, min, secs),以格林威治時間(UTC)
|-- localtime() # 構建一個時間物件(元組物件)(year, mon, day, hours, min, secs),以本地時區
|-- mktime() # 將時間物件轉換為ctime
|-- sleep() # 讓當前執行緒,休眠
|-- strftime() # 將時間物件格式化為需要的任意格式字串
|-- strptime() # 將字串轉換為時間物件
|-- time.time() # 時間戳
datetime(可以看成time模組的補充)
time與datetime
datatime模組:
import datetime
#日期表達
|-- date # 構建日期
|-- time # 構建時間
|-- timezone # 構建時區
|-- datetime # 構建日期+時間
print(datetime.datetime.now())#輸出當前時間,小時分鐘秒
#時間運算
time=datetime.datetime.now()
print(time+datetime.timedelta(2))#增加時間2天
print(time+datetime.timedelta(-2))#減少2天
print(time+datetime.timedelta(-2,hours=6))#減少2天,加5小時
#時間替換
print(time.replace(year=2021,month=11,day=20))#時間替換為2021:11:20
calendar(日曆)
import calendar
print(calendar.calendar(2021)) # 列印2021的日曆
uid
1、什麼是uuid?
UUID 是 通用唯一識別碼(Universally Unique Identifier)的縮寫,是一種軟體建構的標準(特點:不可重複)
2、python如何獲取uuid
import uuid
id = str(uuid.uuid4()) # 獲取uuid
print(id)
加密模組(安全性)
加密演算法:
不可逆加密(雜湊加密、hash演算法)
整個加密是單向的,不可逆的,結果是唯一的
主要作用:密碼加密
資料校驗
可逆加密
對稱加密
加密和解密的祕鑰是同一個!!
DES
非對稱加密
加密和解密使用一對祕鑰
數字簽名:私鑰和公鑰一起使用;私鑰用來解密和簽名,公鑰用來加密和驗證。(證書標準為X.509)
hashlib
import hashlib
#MD5加密不可逆向解析
#破解方法:先儲存下來(彩虹表),根據加密後的密文進行反向查詢。(md5的碰撞)(可在網站md5上檢視)
#加鹽混淆加密演算法(不斷加密):增加難度
mds="sadjsajc"#加密的明文
md5=hashlib.md5()#建立物件
md5.update(mds.encode("utf-8"))#更新加密明文
print(md5.hexdigest())#顯示加密後內容
#加鹽混淆加密演算法
md5=hashlib.md5("123456".encode("utf-8"))
md5.update("789".encode("utf-8"))#加鹽混淆
hmac
import hmac
#使用雜湊演算法同時,進行對稱加密
hmac.new("123456".encode("utf-8"),"sadcndsak".encode("utf-8"),"MD5")
h=hmac.new("123445".encode("utf-8"),digestmod="MD5")#加鹽混淆
print(h.hexdigest())
IO流
1、什麼叫做IO流
IO Stream(input output stream):
狹義上:記憶體和永久儲存裝置之間資料流動
廣義上:記憶體和(其他電腦|其他儲存裝置)間資料的互動