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

Python使用w/x模式创建文件时触发“File doesn't exist”错误咨询

错误原因

  • 你生成的文件名6/11/2021.txt中包含/字符,在Windows系统中/和\都是路径分隔符,系统会将6/11/识别为文件夹层级,而非文件名的一部分,当对应的6/11文件夹不存在时,就会触发FileNotFoundError报错,和你使用w还是x模式无关。

修复方案

  1. 首先替换today变量中的非法文件名字符,Windows下禁止作为文件名的字符包括/ \ : * ? " < > |,你可以优先把日期分隔符从/换成-或者.这类合法字符:
# 示例:替换today中的斜杠为横杠
legal_today = today.replace("/", "-")
  1. 后续所有使用today作为文件名的位置,都替换为处理后的合法文件名,同时可以省略先用x模式创建文件的冗余步骤,w模式本身就支持文件不存在时自动创建:
filename = open("filenames.txt", "w")
filename.write(today)
day = open(legal_today+".txt", "w")
  1. 另外你当前代码里的day.write(title+": "+det, "(x)")写法存在错误,write方法只接收1个字符串参数,你传了两个参数会触发TypeError,要合并成一个字符串再写入:
# 修正write写法
day.write(f"{title}: {det} (x)")

优化建议

  • 推荐使用with语句管理文件操作,会自动完成文件关闭,避免忘记调用close()导致的资源泄漏,修改后完整参考代码如下:
print("You do not have any reminders for today.")
print("Would you like to make some?")
newtoday = input().lower()
if newtoday == "yes":
    legal_today = today.replace("/", "-")
    with open("filenames.txt", "w") as filename:
        filename.write(today)
    with open(legal_today+".txt", "w") as day:
        print("What would you like the title of the reminder to be?")
        title = input()
        print("Add any extra details below e.g. time, place.")
        det = input()
        day.write(f"{title}: {det} (x)")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:06:03