python筆記6

來源:互聯網
上載者:User

標籤:一個   user   定義   密碼   date   for   mod   等於   asc   

日誌模組

1 logger對象 用來產生日誌
logger1 = logging.getLogger("銀行業務相關")
日誌名是用來區分記錄的日誌相關資訊

2 filter對象 用來過濾日誌
3 formmatter對象 定製日誌的格式

4 handler對象 控制日誌的去向 1 檔案 2終端
fh1 = logging.FileHandler("a1.log","encoding=utf-8")

ch = logging.StreamHandler()

##建立logger對象與handler的綁定對象
logger1.addHandler(fh1)

logger1.addHandler(ch)

#format 對象,定製日誌的格式
formatter1 = logging.Formatter(
fmt = ""
datefmt =
)

為handler對象綁定日誌格式

fh1.setFormatter(formatter)

## d設定記錄層級‘
1 logger
2 handler 只有2層控制,最終日誌才會進入對象
logger.setLevel(10)

##格式
import os
LOGGING = {
‘version‘: 1,
‘disable_existing_loggers‘: True,
‘formatters‘: {
‘lqm_format‘: {
‘format‘: ‘%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s‘
},
‘simple‘: {
‘format‘: ‘%(levelname)s %(message)s‘
},
},
‘filters‘: {
},
‘handlers‘: {
‘system‘: {
‘class‘: ‘logging.handlers.TimedRotatingFileHandler‘,
## ‘filename‘: os.getenv(‘LOGS_path‘, ‘logs‘) + "/" + "system.log",
‘filename‘: os.path.join(os.getenv(‘LOGS_path‘, ‘logs‘) ,"system.log"),
‘formatter‘: ‘lqm_format‘,
‘when‘: ‘midnight‘,
‘interval‘: 1,
‘backupCount‘: 30,
},
‘user‘: {
‘class‘: ‘logging.handlers.TimedRotatingFileHandler‘,
‘filename‘: os.getenv(‘LOGS_path‘, ‘logs‘) + "/" + "user.log",
‘formatter‘: ‘lqm_format‘,
‘when‘: ‘midnight‘,
‘interval‘: 1,
‘backupCount‘: 30,
},
},
‘loggers‘: {
‘user‘: {
‘handlers‘: [‘user‘, ],
‘level‘: os.getenv(‘LOGS_level‘, ‘DEBUG‘),
‘propagate‘: True,
},
‘system‘: {
‘handlers‘: [‘system‘, ],
‘level‘: os.getenv(‘LOGS_level‘, ‘DEBUG‘),
‘propagate‘: True,
},
}
}

二 序列 化
json
只能支援部分python的資料類型,所語言類型都支援有
pickle
只有python支援,包含所有python的類型

dic = {‘name‘:"esz"}
with open("user.json",w) as f:
##等於將dic的檔案,給寫入f中
json.dump(dic,f)
## 獨處f的資料並放入dict中
dic = json.load(f)

1 import pickle
2
3 dic={‘name‘:‘alvin‘,‘age‘:23,‘sex‘:‘male‘}
4
5 print(type(dic))#<class ‘dict‘>
6
7 j=pickle.dumps(dic)
8 print(type(j))#<class ‘bytes‘>
9
10
11 f=open(‘序列化對象_pickle‘,‘wb‘)#注意是w是寫入str,wb是寫入bytes,j是‘bytes‘
12 f.write(j) #-------------------等價於pickle.dump(dic,f)
13
14 f.close()
15 #-------------------------還原序列化
16 import pickle
17 f=open(‘序列化對象_pickle‘,‘rb‘)
18
19 data=pickle.loads(f.read())# 等價於data=pickle.load(f)
20
21
22 print(data[‘age‘])

三 hash模組

 hash 1  校正常值內容      2  hash 固定      3 明文轉密碼進行傳輸m = hashlib.md5()m.update(b"hello")   這個等於  m.update("hello".encode("utf-8"))m.update(b"ss")m.hexdigest() 擷取到密文密碼import hmacm = hmac.new(‘sss‘.encode("utf-8"))m1=hashlib.sha256()m1.update(‘hello‘.encode(‘utf-8‘))print(m1.hexdigest())m2=hashlib.sha512()m2.update(‘hello‘.encode(‘utf-8‘))print(m2.hexdigest())

四 re 模組
正則 用一堆特殊符號組成的規則去一個文本/字串匹配符號規則的內容
re.findall("\w",str)

重複匹配  。 ? * + {m,n}print(re.findall)

import re

換行 不匹配

print(re.findall("a.c","123131asc,ssfafaa-c"))

就算換行也匹配

print(re.findall("a.c","123131asc,ssf\nafaa-c",re.DOTALL))

? 匹配0個或者一個 ,有必須匹配,如果沒有也可以

print(re.findall(‘ab?‘,"aa ssafsfaabbssa"))

* 匹配0個或者無窮個+ 匹配一個或者無窮個{n,m}print(re.findall(‘\d+.?\d+‘)).* 貪婪匹配,選擇最多的值

print(re.findall("a.*c",‘assfafasfcssssfafsfsf111223c‘))

匹配到 assfafasfcssssfafsfsf111223c. ? 非貪婪匹配,匹配早少的複合的值
print(re.findall("a.
c",‘assfafasfcssssfafsfsf111223c‘))匹配到 asfc分組 ()與 ! conpan(ies|y) 可以取匹配 ies 與 yconpan(?ies|y) 可以匹配到 conpanies 和conpany

print(re.findall(‘href="(.?)"‘,‘點擊‘))#[‘http://www.baidu.com‘]
print(re.findall(‘href="(?:.
?)"‘,‘點擊‘))#[‘href="http://www.baidu.com"‘]

[] 匹配的也是一個字元,但這個字元必須是[]內定義的

print(re.findall(‘a[a-zA-Z]c‘,"abcsacadcaoc"))
rex = ‘a[+-*/]‘ ##去匹配+,- *,/

print(re.findall(‘e‘,‘alex make love‘) )

python筆記6

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.