python 常用库整理(数据库、uuid、正则)

基本的数据库

python 的数据库api 定义的简洁易使用
一般是:

  • 获取连接
  • 获取游标对象
  • 使用, 查询,执行sql
  • 提交事务
    最后关闭连接
import sqlite3

conn = sqlite3.connect("test.db")
cursor = conn.cursor()
cursor.execute("create table user (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(20))")
cursor.execute("insert into user (name) values ('Jack')")
cursor.execute("insert into user (name) values ('Tom')")
conn.commit()

# 查询操作
cursor.execute("select * from user limit 10")
result = cursor.fetchall()
print result

# 用完关闭
cursor.close()
conn.close()

生成通用唯一标识符

主要是用的是uuid

import uuid

# 生成全球唯一的标志符
print uuid.uuid1()  # 主要是由mac地址,序列号,当前时间生成

# 生成某一空间内的名称对应标志符
print uuid.uuid3(uuid.NAMESPACE_DNS, "hi")  # 基于MD5 计算
print uuid.uuid5(uuid.NAMESPACE_DNS, "hi")  # 基于sha-1

# 基于随机数生成 可能重复的uuid
print uuid.uuid4()

获取网卡地址

import uuid

address = hex(uuid.getnode())[2:]
print "-".join([address[i:i+2] for i in range(0, len(address), 2)])

正则:

python 中的正则主要是有:

  • 查找是否存在模式匹配的内容 re.search()
  • 测试给定的内容是否匹配模式 re.match()
  • 查找所有匹配 re.findall()
  • 按照模式对匹配的内容进行替换 re.sub()
  • 按模式对内容进行分割 re.split()
    注意:对于多次使用的模式可以进行先编译,再使用
    对于获得的匹配对象可以使用 .group()groups()

一些常用特殊字符:

  • \d、\D 表示一个数字字符或一个非数字字符

  • \w、\W 表示一个单词字符或一个非单词字符

    • 单词字符:数字 字母 下划线
  • \s、\S 表示空白字符和非空白字符

    • 空白字符:空格 换行符 制表符 换页符
  • 首尾字符:^ $

  • 范围连接字符: - 例如:1-9

  • 数量表示: {3,4} 匹配前面3个或4个

  • 符号数量:

    • ? 0或1
    • + 1或更多
    • * 0或更多

注意

界定:

  • 后向界定 \d+(?=...) 表示想匹配后面跟着括号里内容的字符
  • 前向界定 (?<=...)\d+ 注意前向的括号里面为确定值
  • 后向非界定 \d+(?!...)
  • 前向非界定 (?<!...)\d+

例如:

import re
s = "aaa111aaa, bbb222, 333ccc"
print re.findall(r"\d+(?=[a-z]+)", s)
# ['111', '333']

# 表示匹配后面是字母的数字
# 也可以使用分组

print re.findall(r"(\d+)[a-z]+", s)
# ['111', '333']

调用已匹配分组
使用 /number

import re
s='111aaa222aaa111 , 333bbb444bb33'
print re.findall( r'(/d+)([a-z]+)(/d+)(/2)(/1)' , s )  # 找出完全对称的 数字-字母-数字-字母-数字 中的数字和字母
[('111', 'aaa', '222', 'aaa', '111')]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值