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

Python生成含日期时间文件名出现异常符号,求解决方法

解决文件名中时间分隔符变为异常符号的问题

问题根源

Windows文件系统禁止文件名包含: < > / \ | ? *这类字符,你用str(datetime.now())生成的字符串里带半角冒号(:),虽然打印时显示正常,但实际写入文件系统时,系统会自动把冒号替换成异常符号,这就是问题的核心原因。

修复方案

1. 生成文件名时主动规避禁用字符

别直接用str(datetime.now()),改用strftime()手动格式化时间,把冒号替换成系统允许的字符(比如横杠-或点.):

from datetime import datetime
# 自定义时间格式,用横杠替换冒号
timestamp = datetime.now().strftime("%Y-%m-%d %H-%M-%S.%f")
filename = f"{timestamp}_logs.txt"

这样生成的文件名不含冒号,自然不会出现异常符号替换的问题。

2. 批量修复已生成的异常文件名

如果已经有一批带异常符号的文件,可以用脚本批量替换:

import os
import shutil

# 替换成你的文件所在目录
target_directory = "./your_logs_dir"

for filename in os.listdir(target_directory):
    if "" in filename:
        # 将异常符号替换为横杠,也可换成其他合法字符
        new_filename = filename.replace("", "-")
        old_path = os.path.join(target_directory, filename)
        new_path = os.path.join(target_directory, new_filename)
        shutil.move(old_path, new_path)

额外提示

如果想要类似冒号的视觉效果,也可以用**全角冒号(:)**替代半角冒号,但全角字符在部分场景下可能存在兼容性问题,更推荐用半角横杠或点作为时间分隔符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 15:00:49