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

如何从多个带注释的TXT文件创建Pandas DataFrame?

基于带注释的TXT文件创建Pandas DataFrame

文件结构示例

以下是4个目标TXT文件的内容(需跳过以#开头的注释行):

文件1

# Moteur conçu par le Poly Propulsion Lab (PPL)
nom=Tondeuse

# Propriétés générales
hauteur=0.5
masse=20.0
prix=110.00

# Propriétés du moteur
impulsion specifique=80

文件2

# Moteur conçu par le Poly Propulsion Lab (PPL)
nom=Civic VTEC

# Propriétés générales
hauteur=2.0
masse=3000.0
prix=2968.00

# Propriétés du moteur
impulsion specifique=205

文件3

# Moteur conçu par le Poly Propulsion Lab (PPL)
nom=VelociRAPTOR

# Propriétés générales
hauteur=4.0
masse=2000.0
prix=6000.00

# Propriétés du moteur
impulsion specifique=250

文件4

# Moteur conçu par le Poly Propulsion Lab (PPL)
nom=La Puissance

# Propriétés générales
hauteur=12.0
masse=15000.0
prix=39000.00

# Propriétés du moteur
impulsion specifique=295

期望输出

最终需要生成如下结构的Pandas DataFrame:

nom  hauteur    masse     prix  impulsion specifique
0      Tondeuse      0.5     20.0    110.0                    80
1    Civic VTEC      2.0   3000.0   2968.0                   205
2  VelociRAPTOR      4.0   2000.0   6000.0                   250
3  La Puissance     12.0  15000.0  39000.0                   295

解决方案

通过以下Python代码即可实现需求:

import pandas as pd
import os

# 替换为你的TXT文件所在目录路径
target_dir = "."
file_paths = [os.path.join(target_dir, f) for f in os.listdir(target_dir) if f.endswith('.txt')]

data_list = []

for file_path in file_paths:
    motor_info = {}
    with open(file_path, 'r', encoding='utf-8') as f:
        for line in f:
            cleaned_line = line.strip()
            # 跳过注释行和空行
            if cleaned_line.startswith('#') or not cleaned_line:
                continue
            # 拆分键值对,仅按第一个等号分割
            key, val = cleaned_line.split('=', 1)
            # 自动转换数据类型
            try:
                val = float(val)
                if val.is_integer():
                    val = int(val)
            except ValueError:
                pass
            motor_info[key] = val
    data_list.append(motor_info)

# 生成DataFrame并调整列顺序
df = pd.DataFrame(data_list)
df = df[['nom', 'hauteur', 'masse', 'prix', 'impulsion specifique']]

print(df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:00:56