基本的数据库
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')]