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

pd.read_csv自定义正则分隔符报错 如何将文件拆分为两列

错误原因

  1. 第一个正则(?<=_.*)\s+报错是因为Python的标准re库不支持可变长度的后视断言,.*匹配长度不固定,不符合后视断言的固定长度要求,因此直接抛出re.error: look-behind requires fixed-width pattern。
  2. 第二个正则\s+(?![^_\S+])逻辑有误,会匹配到值内容内部的空格,因此拆分后列数超过预期。

可行解决方案

方案1(最稳妥,适配所有样例场景)

先将每行完整读取为单列,再限制拆分次数拆分出两列,完全避免分隔符匹配错误问题:

import pandas as pd

# 读取时每行作为单列,跳过前2行
df = pd.read_csv(
    'out.txt',
    header=None,
    sep='\n',
    skiprows=2,
    engine='python',
    keep_default_na=False
)
# 仅按第一个空白序列拆分1次,自动分为两列,保留值内部的所有空格
df = df[0].str.split(n=1, expand=True)
# 可选:给列重命名
df.columns = ['key', 'value']

该方案天然适配值为空的行(比如样例中_raman_measurement.environment_details这类行),拆分后第二列自动为空字符串,符合预期。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 15:18:03