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

从分隔符不一致的CSV文件提取指定值的问题求助

解决思路:提取目标数字的两种有效方法

看起来你卡在了从混合字符串里提取特定数字的环节,先帮你分析下现有代码的问题,再给你两种靠谱的解决办法:

你的代码为什么没生效?

你写的代码只是对字符串做了多层分割(换行→逗号→换行),但完全没有筛选和收集目标数字的逻辑——既没有判断哪些元素是你要的数字,也没有把符合条件的内容存起来,所以自然输出不了想要的结果。

方法一:用正则表达式(最简洁高效)

观察你的数据结构,每个目标数字都符合,[数字],7的格式(比如,1375,7),用正则可以直接匹配所有这类数字,一步到位:

import re

# 你的原始数据
data = r"\N PARIS PREMIERE,1375,7 RTL9,1376,7 TV BREIZH,1162,7 C+ CINEMA,1594,7 \N C+ SPORT,1595,7 OCS MAX,799,7"

# 匹配所有在 , 和 ,7 之间的数字,提取分组里的内容
target_matches = re.findall(r',(\d+),7', data)

# 把匹配到的数字用空格连接成结果字符串
result = ' '.join(target_matches)
print(result)  # 输出:1375 1376 1162 1594 1595 799

方法二:分割后按索引筛选(不用正则)

如果不想用正则,可以先把整个字符串按逗号分割,然后观察目标数字的位置:它们都在分割后列表的第1、3、5...位(索引从0开始),直到倒数第二个元素(最后一个是要排除的7)。

data = r"\N PARIS PREMIERE,1375,7 RTL9,1376,7 TV BREIZH,1162,7 C+ CINEMA,1594,7 \N C+ SPORT,1595,7 OCS MAX,799,7"

# 按逗号分割所有元素
split_items = data.split(',')

# 提取索引1、3、5...的元素,strip()确保去掉可能的空格
target_numbers = [split_items[i].strip() for i in range(1, len(split_items)-1, 2)]

# 拼接成结果
result = ' '.join(target_numbers)
print(result)  # 输出:1375 1376 1162 1594 1595 799

两种方法都能得到你想要的输出,选哪种看你习惯~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:22:19