# 正则模块
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)
主要实现对sql中属性为 驼峰命名 转换为 下划线分割命名# 正则模块import re# 对不需要处理的行返回Falsedef line_info_filter(line): if len(line)<3: return True for info in row_info: if info in line: return True return False# 将字段名称中大写字母转换为"_+小写字母"d