Python常用方法记录
正则
import re
获取匹配
去掉所有特殊字符
a = re.findall(r'[^\*"/:?\\|<>{}\']',boeInfo.msg,re.S)
a = "".join(a)
返回第一个匹配的
patternStr 正则表达式
string 要校验的字符串
pattern = re.compile(patternStr)
ps = pattern.search(string)
非空字符串
# 字段非空
def None_handel(string):
return '' if string is None or string == '无' else pymysql.escape_string(string)
# 字符转非空数据
def str2Num(str):
return 0 if str is None else float(str.replace(',',''))
# 数字非空
def float2Num(num):
return 0 if num is None else round(num,2)
大小写转换
# 大小写转换
def chDictKey(odict, keycase='lower'):
"""Return a new dict object with recursively changed keys in keycase.
keycase: lower(default), upper.
"""
if not isinstance(odict, dict):
return odict
ndict = dict()
for k,v in odict.items():
_k = eval('k.'+keycase+'().strip()')
ndict[_k] = chDictKey(v, keycase)
return ndict
字符串操作
截取
str = 'abc-123'
# 根据下标截取
str1 = str[:3] # abc
str2 = str[3:] # 123
# 根据符号截取
str1 = str.split("-")[0] # abc
补充0
# 左边不足0
strNum = '12345'
strNum .zfill( 10 ) # '0000012345'
# format 方法
'{:03d}'.format(3)
# math方法
import math
strNum = '12345'
b = 10
c = len(strNum)
pr = b - c
pr0 = pr * '0'
ps = '{}{}'.format(pr0, 2000)
大小写转换
# 字典key转大写
def chDictKey(odict, keycase='lower'):
"""Return a new dict object with recursively changed keys in keycase.
keycase: lower(default), upper.
"""
if not isinstance(odict, dict):
return odict
ndict = dict()
for k,v in odict.items():
_k = eval('k.'+keycase+'().strip()')
ndict[_k] = chDictKey(v, keycase)
return ndict
加密
关于hash加密算法都放在hashlib中
以下为hashlib官方文档的介绍:
链接: https://docs.python.org/3/library/hashlib.html?highlight=hashlib#credits
import hashlib
# MD5加密
def test():
token = hashlib.md5('你好'.encode(encoding='UTF-8')).hexdigest()