python - 个性化SQL格式化_001

主要实现对sql中属性为 驼峰命名 转换为 下划线分割命名
# 正则模块
import re


# 对不需要处理的行返回False
def line_info_filter(line):
    if len(line)<3:
        return True
    for info in row_info:
        if info in line:
            return True
    return False

# 将字段名称中大写字母转换为"_+小写字母"
def property_transfer(field):
    res = ""
    for char in field:
        if char.isupper() :
            res+="_"+char.lower()
        else:
            res+=char
    return res


# 未处理的行
unprocessed_rows = []
# SQL文件地址
input_file_path = r"C:\Users\panyu\Desktop\jupyter\jupyter-format.sql"
# 不需要过滤的行标识
row_info=["CREATE TABLE ","PRIMARY KEY "]
# 读取文件内容
with open(input_file_path,'r',encoding='utf-8') as lines:
    for line in lines:   
        if line_info_filter(line)==True:
            unprocessed_rows.append(line.replace("\n", "").replace("\t", ""))
            print(line)
            continue
        field = line.split(" ")[0]
        line_end = line.split(field)[1]
        if field.islower()==True:
            unprocessed_rows.append(line.replace("\n", "").replace("\t", ""))
            # 无需特殊处理
            print(line)
        else:
            # 特殊处理后拼接
            print( property_transfer(field) + line_end)


# 对没有处理的行打印
print("未处理的行: ")
for unprocessed_row in unprocessed_rows:
    print("  "+unprocessed_row)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值