python技巧總結之set、日誌、rsa加密
阿新 • • 發佈:2018-10-23
value obj 字符 config fas bject union rom ase
一、日誌模塊logging模塊調用
1、日誌模塊使用原理
#!/usr/bin/python # -*- coding:utf-8 -*- import logging # 方式一: """ logging.basicConfig(filename=‘log1.log‘, format=‘%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s‘, datefmt=‘%Y-%m-%d %H:%M:%S %p‘, level=10) logging.info(‘info,asdfasdfasdfasdf‘) logging.error(‘error,asdfasdfasdf‘) """ # 方式二: file_handler = logging.FileHandler(‘xxxxxxxx.log‘, ‘a‘, encoding=‘utf-8‘) file_handler.setFormatter(logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s: %(message)s")) logger = logging.Logger(‘s1‘, level=logging.INFO) logger.addHandler(file_handler) logger.info(‘1111‘) logger.error(‘2222‘)
2、日誌模塊封裝使用
import logging from config import settings class Logger(object): def __init__(self): self.log_file_path = settings.LOG_FILE_PATH file_handler = logging.FileHandler(self.log_file_path, ‘a‘, encoding=‘utf-8‘) file_handler.setFormatter(logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s: %(message)s")) self.logger = logging.Logger(‘cmdb‘, level=logging.INFO) self.logger.addHandler(file_handler) def info(self,msg): self.logger.info(msg) def error(self,msg): self.logger.error(msg) logger = Logger()
二、set並集交集的使用
1》交集 >>> x={1,2,3,4} >>> y={3,4,5,6} >>> x set([1, 2, 3, 4]) >>> y set([3, 4, 5, 6]) >>> x&y set([3, 4]) >>> x.intersection(y) set([3, 4]) 2》並集 >>> x | y #集合並集 set([1, 2, 3, 4, 5, 6]) >>> x.union(y) set([1, 2, 3, 4, 5, 6]) 3》差集 >>> x-y # x與y的差集 set([1, 2]) >>> x.difference(y)# x與y的差集 set([1, 2]) >>> y-x # y與x的差集 set([5, 6]) >>> y.difference(x)# y與x的差集 set([5, 6]) 4》對稱差集 >>> x^y set([1, 2, 5, 6]) >>> y^x set([1, 2, 5, 6]) >>> x.symmetric_difference(y) set([1, 2, 5, 6]) >>> y.symmetric_difference(x) set([1, 2, 5, 6]) 5》集合的子集和超集 >>> x set([1, 2, 3, 4]) >>> z set([1, 2, 3]) >>> z.issubset(x)#z是x的子集 True >>> x.issuperset(z)#x是z的超集 True
三、rsa加密
""" pip3 install rsa asdf """ import rsa import base64 # ######### 1. 生成公鑰私鑰 ######### pub_key_obj, priv_key_obj = rsa.newkeys(1024) # 128 - 11 = 117 # 公鑰字符串 pub_key_str = pub_key_obj.save_pkcs1() pub_key_code = base64.standard_b64encode(pub_key_str) print(pub_key_code) # 私鑰字符串 priv_key_str = priv_key_obj.save_pkcs1() priv_key_code = base64.standard_b64encode(priv_key_str) print(priv_key_code) # # ######### 2. 加密 ######### def encrypt(pub_key_code,value): key_str = base64.standard_b64decode(pub_key_code) pk = rsa.PublicKey.load_pkcs1(key_str) result = rsa.encrypt(value.encode(‘utf-8‘), pk) return result data = encrypt(pub_key_code,‘zff‘) print(len(data),data) # # ######### 3. 解密 ######### def decrypt(priv_key_code,value): key_str = base64.standard_b64decode(priv_key_code) pk = rsa.PrivateKey.load_pkcs1(key_str) val = rsa.decrypt(value, pk) return val origin = decrypt(priv_key_code,data) print(origin) # # # ######### 基本使用 ######### # if __name__ == ‘__main__‘: # v = ‘wangshuyang‘ # v1 = encrypt(v) # print(v1) # v2 = decrypt(v1) # print(v2)
python技巧總結之set、日誌、rsa加密