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

Python提取CSV文件中动态变化的玩家与机器人得分问题

解决CSV分数提取问题

你的代码存在两个核心问题:

  • 错误访问了row[0](用户名所在列),分数信息实际在row[1](第二列)中
  • 拆分逻辑针对的是错误的字符串内容,无法定位到分数值

以下是修正后的代码,使用正则表达式可靠提取动态变化的分数:

import csv
import re

# 定义匹配分数的正则模式,支持整数和小数
score_pattern = re.compile(r"There score: ([\d.]+) \| Robots Score: ([\d.]+)")

with open('your_file.csv', newline='') as csvfile:
    reader = csv.reader(csvfile, delimiter=',', quotechar='"')
    for row in reader:
        # 获取包含分数的第二列内容
        score_text = row[1]
        # 匹配分数
        match = score_pattern.search(score_text)
        if match:
            # 提取两个分数并转换为数值类型
            player_score = float(match.group(1))
            robot_score = float(match.group(2))
            # 若确定分数为整数,可改为int(match.group(1))
            print(f"玩家分数: {player_score}, 机器人分数: {robot_score}")
        else:
            print("未找到匹配的分数格式")

代码说明:

  1. 正则表达式:r"There score: ([\d.]+) \| Robots Score: ([\d.]+)" 精准匹配字符串中分数字段后的数值,支持整数和小数格式
  2. CSV读取:csv.reader会自动处理带引号的第二列,即使内容包含换行符或ANSI转义码(如[37m)
  3. 类型转换:使用float()兼容所有数值场景,若分数始终为整数,可替换为int()

测试你的示例输入:

  • 第一个CSV行输出:玩家分数: 0.0, 机器人分数: 1.0
  • 第二个CSV行输出:玩家分数: 6.0, 机器人分数: 17.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:42:46