Python常用方法记录

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)