【问题标题】:automated changing file names every time you run the program每次运行程序时自动更改文件名
【发布时间】:2019-12-24 11:49:56
【问题描述】:

您好,我希望我的程序在每次运行程序时都更改文件名。 而且我还希望将文件保存在单独的文件夹中。 可能的唯一名称可以是在名称中添加数字的计数器,例如(xml_1、xml_2、xml_3 等),也可以是创建文件的日期。

这是我目前所拥有的

with open("new_xml_1.xml","w+") as f:
   for index, row in df.iterrows():
      xml_1 = (csv_to_xml(row))
      print(xml_1)
      f.write(xml_1)

我在想这样的事情

now = datetime.datetime.now()
currentDate = str(now.month) + "_" + str(now.day) + "_" + str(now.year)

file_output = os.path.join(r"C:\bla\bla\path\to\folder\filename_" + currentDate)

也许有更简单的解决方案,但我找不到。

感谢您的帮助,因为我是 python 新手,所以我能获得的任何经验对我都有帮助。

【问题讨论】:

  • 您是否需要唯一的名称才能对您有意义,或者任何唯一的名称都可以?如果废话“计数器”没问题,请查看tempfile.NamedTemporaryFile
  • 它们确实应该有意义,因为其他人应该可以访问存储在其中的文件
  • 非常感谢您的帮助
  • 你是在 mac 上运行这个吗?还是窗户?
  • 我正在使用 jupyter lab 在 windows 上运行

标签: python python-3.5


【解决方案1】:

要在每次运行程序时创建唯一的文件名,可以使用内置 tempfile 模块的 NamedTemporaryFile 类。构造函数有几个可选参数,包括prefixsuffixdir,它们允许您生成需要访问此文件的人可以识别的文件名。

可能的用法是:

import tempfile                                                                 

f = tempfile.NamedTemporaryFile(prefix="myfilename_", suffix=".txt", dir=".", delete=False)                  
print(f.name)

Mac 上的输出:

/Users/user/Documents/myfilename_8oivjhql.txt

请注意,我已将delete 设置为False,以确保在您的程序关闭文件时不会将其删除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-30
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 2015-05-10
    相关资源
    最近更新 更多