如何根据live.csv筛选beta.csv,移除含无效物品的行
过滤CSV中包含无效物品的行
你需要根据live.csv里的有效物品列表,筛选beta.csv中仅包含有效物品的行,以下是几种实用的解决方案:
方法一:Python脚本处理
适合有基础编程能力的用户,灵活且能应对复杂场景(比如物品名含逗号的情况):
# 读取live.csv中的有效物品,存入集合以提升查找效率 valid_items = set() with open('live.csv', 'r', encoding='utf-8') as live_file: next(live_file) # 跳过表头行 for line in live_file: item = line.strip() valid_items.add(item) # 遍历beta.csv,筛选有效行并写入新文件 with open('beta.csv', 'r', encoding='utf-8') as beta_file, open('filtered_beta.csv', 'w', encoding='utf-8') as output_file: # 保留表头 header = next(beta_file) output_file.write(header) for line in beta_file: # 按逗号分割,只分割一次(避免物品名包含逗号) npc, item = line.strip().split(',', 1) if item.strip() in valid_items: output_file.write(line)
使用步骤:
- 将上述代码保存为
filter_csv.py,放在和两个CSV文件同一目录下 - 打开终端,运行命令:
python filter_csv.py - 生成的
filtered_beta.csv就是你需要的结果文件
方法二:命令行awk工具处理
适合Linux/macOS用户(或Windows下使用WSL),无需编写脚本,直接用命令完成:
awk -F ',' 'NR==FNR{if(NR>1) valid[$1]=1; next} FNR==1 || valid[$2]==1' live.csv beta.csv > filtered_beta.csv
命令解释:
-F ',':指定CSV文件的分隔符为逗号NR==FNR:处理第一个输入文件live.csv,跳过表头后将所有有效物品存入valid数组FNR==1:保留beta.csv的表头行valid[$2]==1:检查beta.csv第二列(物品)是否在有效列表中,符合条件的行输出到filtered_beta.csv
方法三:Excel/Numbers可视化处理
适合无编程基础的用户,用表格工具操作:
- 同时打开
beta.csv和live.csv两个文件 - 在
beta.csv中新增一列(比如C列),在C2单元格输入公式:=COUNTIF([live.csv]Sheet1!$A:$A,B2) - 下拉填充公式到所有行:结果为
1表示物品有效,0表示无效 - 选中C列,点击「筛选」按钮,只保留值为
1的行 - 复制筛选后的内容到新表格,保存为CSV格式即可
内容的提问来源于stack exchange,提问作者user22284875
相关产品推荐
相关产品推荐

