You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从含CREATE TABLE的TXT文件提取列名至Pandas DataFrame

提取SQL建表语句中的列名并导入Pandas DataFrame

方法一:使用正则表达式(无需额外依赖)

适合结构规整的建表语句,通过正则匹配快速提取列名:

  1. 读取TXT文件中的SQL内容
  2. 用正则匹配每行开头的列名标识符,跳过括号、分号等无关行
  3. 将提取结果转为Pandas DataFrame

代码示例:

import pandas as pd
import re

# 读取TXT文件内容
with open('your_file.txt', 'r') as f:
    sql_content = f.read()

# 正则匹配列名:匹配每行开头的字母/下划线开头的标识符
column_pattern = re.compile(r'^\s*([a-zA-Z_][a-zA-Z0-9_]*)\s+', re.MULTILINE)
columns = column_pattern.findall(sql_content)

# 转换为DataFrame
df = pd.DataFrame(columns, columns=['column_name'])
print(df)

方法二:使用sqlparse库(更健壮)

针对复杂格式的建表语句(如包含注释、特殊语法),用专业SQL解析库更可靠:

  1. 先安装依赖:pip install sqlparse
  2. 读取文件内容并解析SQL结构
  3. 遍历解析结果提取列名
  4. 转为DataFrame

代码示例:

import pandas as pd
import sqlparse

# 读取TXT文件内容
with open('your_file.txt', 'r') as f:
    sql_content = f.read()

# 解析SQL语句
parsed = sqlparse.parse(sql_content)[0]

# 提取列名:定位CREATE TABLE的括号内定义部分
columns = []
for token in parsed.tokens:
    if isinstance(token, sqlparse.sql.Parenthesis):
        for item in token.tokens:
            if isinstance(item, sqlparse.sql.Identifier):
                col_name = item.get_real_name()
                columns.append(col_name)

# 转换为DataFrame
df = pd.DataFrame(columns, columns=['column_name'])
print(df)

两种方法的输出结果一致,示例如下:

column_name
0     track_id
1       ads_id
2       ads_name
3    play_time
4    package_id
5  package_name
6    company_id
7  company_name
8   click_time
9  demographic
10      status

内容的提问来源于stack exchange,提问作者sssxxxyyy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 17:47:24