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

如何在pandas DataFrame中修改时间格式并将秒数统一设置为59

批量处理TXT时间列格式方案

需求确认

你需要将TXT文件Time列中HH:MM:00格式的时间,修改为HHMM59格式,固定秒位替换为59,以下提供两种常用实现方案:

方案1:Python 全平台批量处理(适配任意分隔符、多文件)

你可以直接运行以下脚本,按你的实际文件情况修改开头的配置项即可:

import os
import glob

# -------------------------- 按需修改以下配置 --------------------------
# TXT文件所在的文件夹路径
folder_path = "./your_txt_folder"
# TXT文件的列分隔符,制表符填"\t",逗号填",",空格填" "
delimiter = "\t"
# Time列的序号,第一列是0,第二列是1,依此类推
time_col_index = 1
# 处理后的文件添加的后缀,避免覆盖原文件,不需要可以留空
output_suffix = "_processed"
# --------------------------------------------------------------------

# 遍历文件夹下所有txt文件
for txt_file in glob.glob(os.path.join(folder_path, "*.txt")):
    lines = []
    with open(txt_file, "r", encoding="utf-8") as f:
        for line in f:
            line = line.strip()
            if not line:
                lines.append(line)
                continue
            cols = line.split(delimiter)
            # 处理Time列:去除冒号,替换最后两位00为59
            time_str = cols[time_col_index]
            processed_time = time_str.replace(":", "")[:4] + "59"
            cols[time_col_index] = processed_time
            lines.append(delimiter.join(cols))
    # 保存处理后的文件
    file_name, ext = os.path.splitext(txt_file)
    output_path = f"{file_name}{output_suffix}{ext}"
    with open(output_path, "w", encoding="utf-8") as f:
        f.write("\n".join(lines))

方案2:AWK 单行命令(类Unix/Linux/macOS 快速处理)

如果你的TXT是制表符分隔、Time列为第2列,直接在终端执行以下命令即可批量处理:

# 单个文件处理,输出到新文件
awk -F '\t' 'BEGIN{OFS="\t"} {gsub(/:/,"",$2); $2=substr($2,1,4)"59"; print}' input.txt > output.txt

# 批量处理当前目录所有txt文件,保存为原文件名加_processed后缀
for f in *.txt; do awk -F '\t' 'BEGIN{OFS="\t"} {gsub(/:/,"",$2); $2=substr($2,1,4)"59"; print}' "$f" > "${f%.txt}_processed.txt"; done

提示:如果列分隔符是逗号,把-F '\t'里的\t换成,即可;如果Time列是第3列,把代码里的$2改成$3即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 14:24:01