Python错误FileNotFoundError:[Errno 2]没有这样的文件或目录

2024-04-20 02:50:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写代码并将名为的csv文件保存为 filename=“title”+“今天的日期和时间”+“.csv”

from datetime import date
import csv

filename = "title_" + str(date.today()) + ".csv"
f = open(filename, "w", encoding="utf-8-sig", newline="")
writer = csv.writer(f)

这似乎正在工作,文件保存为“title_2020-12-03.csv”

但我也想用时间来命名文件名 所以我试过了

from datetime import datetime
now = datetime.now()
today = now.strftime("%Y/%m/%d_%H:%M")

filename = "title_" + datetime.now().strftime("%Y/%m/%d_%H:%M") + ".csv"
f = open(filename, "w", encoding="utf-8-sig", newline="")
writer = csv.writer(f)

但这给了我一个错误

FileNotFoundError:[Errno 2]没有这样的文件或目录:“title\u 2020/12/03\u 11:22.csv”

任何帮助都将不胜感激, 谢谢大家!


Tags: 文件csvfromimporttodaydatetimedatetitle
2条回答

这种方法的问题是,由于斜杠('/'),所需的文件名将被识别为文件的修改文件路径

因此,在名称为'title_2020/12/03_11:22.csv'的情况下,相对于执行的cwd,在目录中找不到具有相同名称的文件,而是程序将文件名解释为路径,并尝试在'title_2020/12/'目录中查找文件'03_11:22.csv'

因此,您应该使用不同的分隔符,该分隔符不会与系统上的文件路径冲突。一般来说,最安全的方法是使用破折号或下划线

在工作日期中使用破折号而不是斜杠:

from datetime import datetime
now = datetime.now()
today = now.strftime("%Y/%m/%d_%H:%M")

filename = "title_" + str(datetime.now().strftime("%Y-%m-%d_%H:%M")) + ".csv"
f = open(filename, "w", encoding="utf-8-sig", newline="")
writer = csv.writer(f)

相关问题 更多 >