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

如何为CSV每行添加实时毫秒级时间戳?解决时间戳重复问题

解决CSV每行添加实时毫秒级时间戳的问题

你遇到的问题核心是时间戳只在程序启动时计算了一次,后续所有行都复用这个固定时间。要实现每行对应实时时间,必须在处理/写入每一行的时机重新获取当前时间。

方案1:在原始写入流程中添加实时时间戳(推荐)

这是最准确的方式,时间戳是数据生成时的真实时间,而非事后处理的时间。修改你原本的写入代码:

import csv
from datetime import datetime

csv_path = 'keypoint_output1.csv'
# 每次写入行前,实时获取当前时间并格式化为毫秒级
curr_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
with open(csv_path, 'a', newline="") as f:
    writer = csv.writer(f)
    # 将时间戳追加到该行数据末尾后写入
    writer.writerow([*pre_processed_landmark_list, curr_time])

代码说明:

  • datetime.now():每次调用都会获取当前系统的实时时间
  • strftime('%Y-%m-%d %H:%M:%S.%f'):生成包含微秒的时间字符串(格式如2023-02-11 12:45:10.557105)
  • [:-3]:截断微秒的后三位,只保留前三位实现毫秒级精度(最终格式如2023-02-11 12:45:10.557)

方案2:给已存在的CSV文件补实时时间戳

如果需要对已生成的CSV文件每行添加处理时的实时时间,只需把时间获取逻辑移到循环内部:

import csv
from datetime import datetime

with open("keypoint_output1.csv", "r") as fin, open("out.csv", 'w', newline='') as fout:
    reader = csv.reader(fin)
    writer = csv.writer(fout)
    for line in reader:
        # 每处理一行就重新获取当前实时时间
        curr_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
        line.append(curr_time)
        writer.writerow(line)

关键注意点:

  • 必须将datetime.now()放在循环内部,确保每行都能获取最新的时间
  • 如果不需要完整日期,可调整strftime的格式(比如你之前用的'%M:%S.%f'),同样用[:-3]截断到毫秒

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 12:01:11