<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
什麼是雜湊模組:
hashlib模組是一種加密模組,內部存有多種加密型別
加密的作用:
可將明文資料進行加密,轉換成一串密文,密文越長說明檔案加密的越複雜
加密演演算法的種類:
補充說明:
1.演演算法不變,如果內容相同,那麼加密的結果肯定相同
2.待加密的明文,可以一次傳入,也可分多次傳入,不會影響密文的結果
3.加密的結果是無法反解密的
4.加鹽處理:
應用方向:
使用者密碼加密
檔案安全性校驗
匯入模組:
import hashlib
具體用法:
1、選擇加密演演算法:
md5 = hashlib.md5()2、傳入明文:
md5.update(b'hello')
# 傳入的明文需提前轉換成二進位制的方式3、獲取加密密文:
res = md5.hexdigets()
print(res)
# 5d41402abc4b2a76b9719d911017c592
什麼是subprocess模組:
subprocess是python內建的模組,這個模組中的Popen可以檢視使用者輸入的命令列是否存在
如果存在,把內容寫入到stdout管道中
如果不存在,把資訊寫入到stderr管道
要注意的是,這個模組的返回結果只能讓開發者看一次,如果想多次檢視,需要在第一次輸出的時候,把所有資訊寫入到變數中。
模組匯入:
import subprocess
基本格式:
subprocess.Popen('命令', shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
具體用法:
import subprocess r = subprocess.Popen('xxxx', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) print(r.stdout.read().decode('utf8')) print(r.stderr.read().decode('utf8'))
什麼是logging模組:
loggin模組是用來寫紀錄檔的,以前我們寫紀錄檔需要自己往檔案裡寫記錄資訊,使用了logging之後我們只需要一次設定好,以後寫紀錄檔的事情都不需要我們操心了,非常方便
紀錄檔的組成:
紀錄檔的等級:
DEBUG
INFO
WARNING
ERROR
CRITICAL
掌握層度:
longging紀錄檔模組,內建方法與程式碼相對固定,在使用時,只需根據個人要求,對內部變數稍作修改即可使用
匯入模組:
import logging
列印紀錄檔級別:
logging.debug('Python debug') logging.info('Python info') logging.warning('Python warning') logging.error('Python Error') logging.critical('Python critical') ------------------------------------------------------------------- WARNING:root:Python warning ERROR:root:Python Error CRITICAL:root:Python critical
當指定一個紀錄檔級別之後,會記錄大於或等於這個紀錄檔級別的紀錄檔資訊,小於的將會被丟棄, 預設情況下紀錄檔列印只顯示大於等於 WARNING 級別的紀錄檔。
程式碼用法:
import logging logger = logging.getLogger("simple_example") logger.setLevel(logging.DEBUG) # 建立一個filehandler來把紀錄檔記錄在檔案裡,級別為debug以上 fh = logging.FileHandler("spam.log") fh.setLevel(logging.DEBUG) # 建立一個streamhandler來把紀錄檔打在CMD視窗上,級別為error以上 ch = logging.StreamHandler() ch.setLevel(logging.ERROR) # 設定紀錄檔格式 formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") ch.setFormatter(formatter) fh.setFormatter(formatter) #將相應的handler新增在logger物件中 logger.addHandler(ch) logger.addHandler(fh) # 開始打紀錄檔 logger.debug("debug message") logger.info("info message") logger.warn("warn message") logger.error("error message") logger.critical("critical message")
紀錄檔模板:
import logging import logging.config # 定義紀錄檔輸出格式 開始 standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]' '[%(levelname)s][%(message)s]' # 其中name為getlogger指定的名字 simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s' # 自定義檔案路徑 logfile_path = 'a3.log' LOGGING_DIC = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'standard': { 'format': standard_format }, 'simple': { 'format': simple_format }, }, 'filters': {}, # 過濾紀錄檔 'handlers': { # 列印到終端的紀錄檔 'console': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', # 列印到螢幕 'formatter': 'simple' }, # 列印到檔案的紀錄檔,收集info及以上的紀錄檔 'default': { 'level': 'DEBUG', 'class': 'logging.handlers.RotatingFileHandler', # 儲存到檔案 'formatter': 'standard', 'filename': logfile_path, # 紀錄檔檔案 'maxBytes': 1024 * 1024 * 5, # 紀錄檔大小 5M 'backupCount': 5, # 這裡兩個引數的意思是一個紀錄檔檔案最多寫5M,最多可以存在五個不同的紀錄檔檔案,但是當數量達到五個之後就會出現最早的那個會被刪除, # 然後再產生一個新的檔案(類似於覆蓋了最早的那個檔案) 'encoding': 'utf-8', # 紀錄檔檔案的編碼,再也不用擔心中文log亂碼了 }, }, 'loggers': { # logging.getLogger(__name__)拿到的logger設定 '': { 'handlers': ['default', 'console'], # 這裡把上面定義的兩個handler都加上,即log資料既寫入檔案又列印到螢幕 'level': 'DEBUG', 'propagate': True, # 向上(更高level的logger)傳遞 }, # 當鍵不存在的情況下 (key設為空字串)預設都會使用該k:v設定 # '購物車記錄': { # 'handlers': ['default','console'], # 這裡把上面定義的兩個handler都加上,即log資料既寫入檔案又列印到螢幕 # 'level': 'WARNING', # 'propagate': True, # 向上(更高level的logger)傳遞 # }, # 當鍵不存在的情況下 (key設為空字串)預設都會使用該k:v設定 }, } logging.config.dictConfig(LOGGING_DIC) # 自動載入字典中的設定 # logger1 = logging.getLogger('購物車記錄') # logger1.warning('尊敬的VIP客戶 晚上好 您又來啦') # logger1 = logging.getLogger('註冊記錄') # logger1.debug('jason註冊成功') logger1 = logging.getLogger('紅浪漫顧客消費記錄') # 當這裡的getLogger內部的引數如果字典中沒有,就會自動使用字典中名稱為空的那個模版來執行 logger1.debug('慢男 猛男 騷男')
以上就是Python基礎之hashlib模組subprocess模組logging模組的詳細內容,更多關於Python hashlib subprocess logging的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45