Day06 学习笔记
正则校验示例
- 身份编号:
^(\d{18}|\d{17}X|\d{15})$- 说明:匹配 18 位纯数字、17 位数字 + 大写 X、或 15 位纯数字。
- 使用:
m = re.match(pattern, s);匹配成功后m.group()取整段结果。
- 邮箱格式:
^[0-9a-zA-Z_-]+@([0-9a-zA-Z]+\.){1,2}(com|cn|net|org)$- 说明:用户名由字母/数字/下划线/连字符组成;域名为 1~2 个以点分隔的部分;顶级域限制在 com/cn/net/org。
读文件并按行处理
打开文件并逐行读取:
1
2
3
4
5
6
7f = open(path)
while True:
line = f.readline()
if not line:
break
# 对 line 做解析与处理
f.close()正则解析:为日志格式准备提取模式,匹配出诸如时间、源 IP/端口、目标 IP/端口、字节数等字段用于后续入库。
Oracle 数据库基本操作(cx_Oracle)
建立连接与获取游标:
1
2
3import cx_Oracle
db = cx_Oracle.connect("user", "password", "host:port/service")
cursor = db.cursor()建表与提交:
1
2cursor.execute("CREATE TABLE PYTHON_DATA(time varchar(40), srcip varchar(40), sport number(20), dstip varchar(40), dport number(20), revd number(20), sent number(20))")
db.commit()插入数据与事务:
1
2
3
4
5
6cursor.execute(
"INSERT INTO PYTHON_DATA(time, srcip, sport, dstip, dport, revd, sent) VALUES (:1, :2, :3, :4, :5, :6, :7)",
(time, srcip, sport, dstip, dport, revd, sent)
)
db.commit() # 正常提交
# 出错时可 rollback:db.rollback()关闭:处理完成后关闭游标与连接:
cursor.close()、db.close()。
运行流程组织
- 典型结构:
- 连接数据库并准备表结构;
- 逐行读取日志,正则解析出字段;
- 将解析结果插入数据库,必要时提交或回滚;
- 在
if __name__ == "__main__":中串联初始化与主流程函数。
Day06 学习笔记
https://blog.pangcy.cn/2018/10/20/后端编程相关/python/python2基础/Day06 学习笔记/