openpyxl 读取SQL文件分两部分读取,part1遵循一种规则,part2遵循另一种规则
时间: 2024-04-21 09:23:34 浏览: 115
要使用openpyxl库读取SQL文件的两个部分,并且每个部分遵循不同的规则,你可以使用openpyxl的相关方法和技巧来实现。
下面是一个示例代码,演示如何分别读取SQL文件的两个部分,并对每个部分应用不同的规则:
```python
import re
from openpyxl import Workbook
# 创建一个新的Excel文件
wb = Workbook()
sheet = wb.active
# 定义正则表达式模式
part1_pattern = r"CREATE TABLE\s+(\w+)\s*\((.*?)\)"
part2_pattern = r"COMMENT ON\s+TABLE\s+(\w+)\s+IS\s+'(.*?)';"
# 待读取的SQL文件路径
file_path = "path/to/sqlfile.sql" # 替换为你的SQL文件路径
# 读取SQL文件内容
with open(file_path, "r") as file:
sql_content = file.read()
# 提取第一部分并应用规则
part1_data = re.findall(part1_pattern, sql_content, re.DOTALL)
# 提取第二部分并应用规则
part2_data = re.findall(part2_pattern, sql_content)
# 将提取的结果写入Excel
sheet.append(["表名", "字段"])
for table_name, table_fields in part1_data:
sheet.append([table_name, table_fields])
sheet.append(["表名", "注释"])
for table_name, table_comment in part2_data:
sheet.append([table_name, table_comment])
# 保存Excel文件到指定位置
output_file_path = "path/to/output.xlsx" # 替换为你想要保存的文件路径
wb.save(output_file_path)
```
在上述示例代码中,我们首先加载SQL文件内容,然后使用正则表达式模式`part1_pattern`和`part2_pattern`分别提取第一部分和第二部分的数据。然后,我们将提取的结果逐行写入Excel文件的不同工作表中。最后,我们将Excel文件保存到指定的位置。
你需要修改`file_path`变量为你的SQL文件路径,并根据实际情况修改规则的正则表达式模式。
希望这个示例对你有帮助!如果有任何其他问题,请随时提问。
阅读全文