如何读取CSV文件按逗号拆分,计算字段差值后输出符合条件的姓名
CSV行差值筛选输出人名实现方案
需求说明:输入为逗号分隔的四列CSV数据,每行格式为
名,姓,数字1,数字2,计算数字2 - 数字1的差值,若差值大于10则输出该行对应的人名(名,转为小写)。
可用实现方案
1. Shell awk 实现(轻量文本处理首选)
一行命令即可完成处理,适合直接在终端操作文件:
awk -F ',' '{if($4-$3>10) print tolower($1)}' 你的输入文件路径
-F ','指定字段分隔符为逗号$4-$3>10判断第四列减第三列的差值是否符合要求tolower($1)将第一列人名转为小写输出,和示例输出格式一致
代入你给出的示例输入,运行后输出结果为sam,完全符合预期。
2. Python 实现(适合集成到业务代码)
如果需要把逻辑嵌入到Python项目中,可以使用如下代码:
# 替换为你的输入文件路径 file_path = "input.csv" with open(file_path, 'r', encoding='utf-8') as f: for line in f: line = line.strip() # 跳过空行 if not line: continue fields = line.split(',') # 若为小数可将int替换为float diff = int(fields[3]) - int(fields[2]) if diff > 10: print(fields[0].lower())
补充说明:如果输入数据的第三、第四列为小数格式,只需要将上述代码中的int类型转换修改为float即可适配。
内容的提问来源于stack exchange,提问作者Anjula Samarasinghe
相关产品推荐
相关产品推荐

