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

Python创建指定格式日期时间命名文件报FileNotFoundError

报错原因

根本原因是你生成的dt_string里包含了操作系统的路径分隔符/,不属于合法的单文件名:

  • 你传入的文件名字符串是25/06/2022 13:02:32,操作系统会自动把/识别为分层路径的标记,将其解析为多级路径:当前目录下找名为25的文件夹 → 进入25文件夹找名为06的子文件夹 → 在06文件夹里创建名为2022 13:02:32的文件。
  • w+模式确实会自动创建不存在的文件,但这个规则仅对路径最后一级的目标文件生效,不会自动创建路径中间缺失的父文件夹。你本地本来就没有25/06这两层目录,自然会抛出找不到路径的错误。

你用str(now)能正常创建文件,是因为datetime默认转字符串的输出类似2022-06-25 13:02:32.123456,里面没有/这类路径分隔符,会被直接识别为当前目录下的单个文件,符合创建规则。

额外注意:Windows系统下文件名还禁止使用半角冒号:(该符号用于标记盘符,比如C:),你原来格式里时间部分的:在Windows环境下同样会触发文件名非法错误。

修复方法

把格式串里的/和:替换成文件名允许的合法字符即可,比如横杠-、下划线_,修正后的代码:

from datetime import datetime

now = datetime.now()
# 替换非法路径/保留字符,生成合法文件名
dt_string = now.strftime("%d-%m-%Y %H-%M-%S")
open(dt_string, 'w+')

如果你业务上必须保留dd/mm/YY H:M:S的显示样式,不要直接拿这个格式串当文件名,可以把该格式的时间写入文件内容,或者用全角的/、:替代半角符号(不推荐,跨系统兼容性很差)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 06:03:25