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

如何从txt文件中提取KE_None与CPS_None列数值并排除无关内容

解决方案

以下是两种可直接运行的实现方案,均可自动跳过无效头部内容、精准提取目标两列数据:

方法1:Python内置方法实现(无额外依赖)

file_path = r"C:\Temp\stick\zNsNo-MAGNETRON\MAG-ZnSnO-1-XPS.vms"
ke_list = []
cps_list = []

with open(file_path, 'r', encoding='utf-8') as f:
    # 跳过前2行无效元数据
    for _ in range(2):
        next(f)
    # 读取表头行定位目标列位置
    headers = f.readline().split()
    ke_idx = headers.index("KE_None")
    cps_idx = headers.index("CPS_None")
    # 逐行提取数值
    for line in f:
        line = line.strip()
        if not line:
            continue
        parts = line.split()
        ke_list.append(float(parts[ke_idx]))
        cps_list.append(float(parts[cps_idx]))

# 直接绘制曲线
import matplotlib.pyplot as plt
plt.plot(ke_list, cps_list)
plt.xlabel("KE_None (eV)")
plt.ylabel("CPS_None")
plt.show()

方法2:Pandas实现(更简洁,适合批量数据处理)

import pandas as pd
import matplotlib.pyplot as plt

file_path = r"C:\Temp\stick\zNsNo-MAGNETRON\MAG-ZnSnO-1-XPS.vms"
# 自动跳过前2行,仅读取目标列
df = pd.read_csv(file_path, skiprows=2, sep='\s+', usecols=["KE_None", "CPS_None"])
ke_list = df["KE_None"].tolist()
cps_list = df["CPS_None"].tolist()

# 绘制曲线
plt.plot(ke_list, cps_list)
plt.xlabel("KE_None (eV)")
plt.ylabel("CPS_None")
plt.show()

两种方案均通过列名匹配定位目标字段,无需硬编码列索引,就算后续文件列顺序调整也能正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:06:05