如何从.dat文件计算两列差值并找到温差最小的日期
实现方案
以下是两种常用场景下的实现方式:
方案1:Linux/macOS 终端直接执行(一行awk命令)
直接在终端运行以下命令即可得到结果:awk 'NR>1 {delta = $2 - $3; if (min_delta == "" || delta < min_delta) {min_delta = delta; target_day = $1}} END {print "最小温差对应日期:" target_day, "温差:" min_delta}' weather.dat
逻辑说明:跳过第一行表头,逐行计算当日温差,遍历过程中始终保留最小温差对应的日期,遍历结束后输出结果。用你给出的示例数据运行,得到的结果是日期2,温差16。
方案2:Python 代码实现(跨平台,可二次扩展)
如果需要后续处理数据,可以用以下Python脚本实现:
# 初始化最小温差为无穷大,目标日期为空 min_delta = float('inf') target_day = None with open('weather.dat', 'r', encoding='utf-8') as f: # 跳过表头行 next(f) for line in f: # 按空白符分割行,过滤空行 parts = line.strip().split() if not parts: continue day = int(parts[0]) max_t = int(parts[1]) min_t = int(parts[2]) delta = max_t - min_t # 更新最小温差和对应日期 if delta < min_delta: min_delta = delta target_day = day print(f"最小温差对应日期:{target_day},温差:{min_delta}")
内容的提问来源于stack exchange,提问作者adil Raza
相关产品推荐
相关产品推荐

