Ошибка Python FileNotFoundError: [Ошибка 2] Нет такого файла или каталога

#python #csv #datetime

#питон #csv #дата и время

Вопрос:

Я пытаюсь создать код и сохранить файл 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: [Ошибка 2] Нет такого файла или каталога: ‘title_2020 /12/ 03_11:22.csv’

Любая помощь будет оценена, спасибо!

Ответ №1:

Проблема с вашим подходом заключается в том, что требуемое имя файла будет распознано как измененный путь к вашему файлу из-за косых черт ( '/' ).

Таким образом, в случае имени 'title_2020/12/03_11:22.csv' вы не найдете файл с тем же именем в каталоге относительно cwd выполнения, а скорее программа интерпретирует имя файла как путь и попытается найти файл '03_11:22.csv' в 'title_2020/12/' каталоге.

Поэтому вам следует использовать другой разделитель, который не совпадает с путями к файлам в вашей системе. В общем, безопаснее всего использовать тире или символы подчеркивания.

Комментарии:

1. Спасибо за вашу помощь, после удаления ‘/’ и ‘:’ это работает

Ответ №2:

Использование тире вместо косых черт в дате, когда это работает:

 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)
 

Комментарии:

1. Спасибо за вашу помощь, но я по-прежнему получаю ту же ошибку: Ошибка FileNotFoundError: [Ошибка 2] Нет такого файла или каталога: ‘title_2020-12-03_08:51.csv’

2. : также не допускается в имени файла, по крайней мере, в Windows.

3. @MrFuppes: Спасибо, это может быть причиной, я сам использую Linux и никаких проблем. Возможно, @Zack Lee попробуйте с точкой или h , например filename = "title_" datetime.now().strftime("%Y-%m-%d_%Hh%M") ".csv"

4. @MrFuppes Спасибо после удаления «:» это работает