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

使用Pandas读取TXT文件表格时无法正确显示的问题

解决Pandas读取ASCII表格失败的问题

你的问题出在这个TXT是ASCII绘制的带边框表格,包含分隔线、跨行合并单元格、字段多行换行的情况,直接用read_csv指定sep='|'无法处理这些特殊格式,得先清理数据再导入。

步骤1:预处理文本数据

先读取原始文件,过滤掉边框分隔行,清理每行的多余符号和空格:

import pandas as pd

# 读取原始文本
with open('/data.txt', 'r', encoding='utf-8') as f:
    lines = f.readlines()

# 过滤边框行,清理每行内容
clean_lines = []
for line in lines:
    stripped_line = line.strip()
    # 跳过以┌、├、┐、┘开头的边框分隔行
    if stripped_line.startswith(('┌', '├', '┐', '┘')):
        continue
    # 处理有效数据行:去掉首尾的│,分割字段并清理空格
    if stripped_line.startswith('│') and stripped_line.endswith('│'):
        fields = [field.strip() for field in stripped_line[1:-1].split('|')]
        clean_lines.append(fields)

步骤2:处理合并单元格与多行字段

处理空字段填充(比如跨行的Library字段空值用上一行有效值),合并Title字段的多行内容:

processed_data = []
current_entry = None

for fields in clean_lines:
    # 跳过表头行
    if fields[0] == 'Library':
        continue
    
    # 初始化新条目
    if not current_entry:
        current_entry = fields.copy()
    else:
        # 若当前行Library为空,说明是上一条目的续行
        if fields[0] == '':
            # 合并Title字段
            current_entry[-1] += ' ' + fields[-1]
            # 其他字段若有新值则更新,无则保留上一行内容
            for i in range(len(current_entry)-1):
                if fields[i] != '':
                    current_entry[i] = fields[i]
        else:
            # 保存上一条目,初始化新条目
            processed_data.append(current_entry)
            current_entry = fields.copy()
# 保存最后一条条目
if current_entry:
    processed_data.append(current_entry)

步骤3:转为DataFrame

把处理好的列表转成Pandas DataFrame:

columns = ['Library', 'Vulnerability', 'Severity', 'Status', 'Installed Version', 'Fixed Version', 'Title']
df = pd.DataFrame(processed_data, columns=columns)

# 查看结果
print(df.head(10))

关键说明

  • ASCII边框的分隔线会干扰read_csv解析,必须提前过滤
  • 跨行合并的字段需要手动判断,通过填充空值、合并多行文本还原完整条目
  • 字段前后的多余空格要通过strip()清理,避免分割后出现无效空字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 12:17:02