使用 strftime 作为 .文件名

Using strftime as . File Name

正在尝试使用以下代码写入 to_csv

file_name = time.strftime("Box_Office_Data_%Y/%m/%d_%H:%M.csv")
allFilms.to_csv(file_name)

但出现以下错误:

FileNotFoundError                         Traceback (most recent call last)
<ipython-input-36-aa2d6e13e9af> in <module>()
      9 
     10 file_name = time.strftime("Box_Office_Data_%Y/%m/%d_%H:%M.csv")
---> 11 allFilms.to_csv(file_name)

/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/pandas/core/frame.py in to_csv(self, path_or_buf, sep, na_rep, float_format, columns, header, index, index_label, mode, encoding, quoting, quotechar, line_terminator, chunksize, tupleize_cols, date_format, doublequote, escapechar, decimal, **kwds)
   1187                                      escapechar=escapechar,
   1188                                      decimal=decimal)
-> 1189         formatter.save()
   1190 
   1191         if path_or_buf is None:

/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/pandas/core/format.py in save(self)
   1440         else:
   1441             f = com._get_handle(self.path_or_buf, self.mode,
-> 1442                                 encoding=self.encoding)
   1443             close = True
   1444 

/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/pandas/core/common.py in _get_handle(path, mode, encoding, compression)
   2827                 f = open(path, mode, encoding=encoding)
   2828             else:
-> 2829                 f = open(path, mode, errors='replace')
   2830         else:
   2831             f = open(path, mode)

FileNotFoundError: [Errno 2] No such file or directory: 'Box_Office_Data_2015/09/24_22:11.csv'

既然我正在写入 csv,为什么它会搜索尚未创建的 file/directory?

非常感谢任何人的帮助:)

错误很明显-

FileNotFoundError: [Errno 2] No such file or directory: 'Box_Office_Data_2015/09/24_22:11.csv'

如果您在尝试执行 .to_csv() 时出现此错误,则表示您尝试保存文件的目录不存在。因此,在您的情况下,目录 - Box_Office_Data_2015/09/ 不存在。看起来你实际上是想 Box_Office_Data_2015/09/24_22:11.csv 成为一个文件名(没有目录),我不确定这是否可能 09/ 被认为是一个目录。

一个简单的解决方案是在 year/month/day 之间使用 / 以外的东西。示例 -

file_name = time.strftime("Box_Office_Data_%Y_%m_%d_%H:%M.csv")
allFilms.to_csv(file_name)

在你的代码中 file_name = time.strftime("Box_Office_Data_%Y/%m/%d_%H:%M.csv").

文件名是这样的Box_Office_Data_2015/09/24_22:11.csv,意思是文件的路径。

尝试将 / 替换为 _

试试这个:

file_name = time.strftime("Box_Office_Data_%Y_%m_%d_%H:%M.csv")