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

Python如何实现自定义表格格式写文件 追加数据不重复表头

实现代码

直接用下面的脚本即可满足需求,核心是区分首次写入和追加写入的逻辑,追加时先替换原有末尾的底部分隔线,保证格式正确:

import time
import os

FILE_PATH = 'myfile.txt'
# 表格固定格式片段
TOP_BORDER = "_________________________________\n"
HEADER_ROW = "|Day |Month |Year |Hour |Minute |\n"
HEADER_DIVIDER = "|-------------------------------|\n"
ROW_DIVIDER = "|===============================|\n"
BOTTOM_BORDER = "|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|\n"

# 拆分当前时间字段
day, month, year, hour, minute = time.strftime("%d %m %Y %I %M").split()
# 按列宽对齐生成新数据行
new_data_row = f"|{day:<3}|{month:<6}|{year:<5}|{hour:<5}|{minute:<7}|\n"

if not os.path.exists(FILE_PATH) or os.path.getsize(FILE_PATH) == 0:
    # 首次写入:输出完整表头+首行数据
    with open(FILE_PATH, 'w', encoding='utf-8') as f:
        f.write(TOP_BORDER)
        f.write(HEADER_ROW)
        f.write(HEADER_DIVIDER)
        f.write(new_data_row)
        f.write(BOTTOM_BORDER)
else:
    # 追加写入:先读取原有内容,移除末尾旧的底部分隔线
    with open(FILE_PATH, 'r', encoding='utf-8') as f:
        old_content = f.read().rstrip()
    old_content = old_content.removesuffix(BOTTOM_BORDER.rstrip('\n'))
    # 拼接行分隔线、新数据、新的底部分隔线后写回
    updated_content = f"{old_content}\n{ROW_DIVIDER}{new_data_row}{BOTTOM_BORDER}"
    with open(FILE_PATH, 'w', encoding='utf-8') as f:
        f.write(updated_content)
逻辑说明
  • 首次运行时(文件不存在/文件为空),会自动写入顶部边框、表头、表头分隔线、第一条数据和底部边框,和要求的首次写入格式完全一致
  • 后续重复运行脚本时,不会重复写入表头:会先读取原有文件内容,删掉末尾旧的^形底部分隔线,替换为=形的行间分隔线,再追加新的数据行,最后补上新的底部分隔线
  • 代码里用f-string的左对齐格式符保证每列宽度固定,表格始终对齐,不会因为数据长度变化错位

运行效果

首次运行后文件内容:

_________________________________
|Day |Month |Year |Hour |Minute |
|-------------------------------|
|01  |07    |2022 |01   |19     |
|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|

第二次运行追加后文件内容:

_________________________________
|Day |Month |Year |Hour |Minute |
|-------------------------------|
|01  |07    |2022 |01   |19     |
|===============================|
|01  |07    |2022 |02   |10     |
|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|

多次运行会持续按规则追加新行,不会破坏原有格式和历史数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 23:51:22