繁体   English   中英

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

[英]Python Error FileNotFoundError: [Errno 2] No such file or directory

我正在尝试编写代码并保存名为 filename = "title" + "today's date and time" + ".csv" 的 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_2020/12/03_11:22.csv'

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

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

因此,如果名称为'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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM