Python根据当前日期创建文件夹结构

时间:2017-06-07 09:52:31

标签: python-2.7

我在我的脚本上使用以下var来将输出发送到一个

output = "/opt/output"

我想调整它以使输出相对于日期当前日期触发脚本它应该像这样结构

output = "/opt/output/year/month/day"

我不确定我是否正确使用以下方法

output = "/opt/output/" + today.strftime('%Y%m%d')

这里的任何提示

4 个答案:

答案 0 :(得分:1)

我建议您使用完整时间戳,而不是仅使用日期:

import os

mydir = os.path.join(output, datetime.datetime.now().strftime('%Y/%m/%d_%H-%M-%S'))

建议这样做,因为如果你的脚本每天运行多次会发生什么?你应该至少添加一个计数器或其他东西(如果你不想要完整的时间戳),如果该文件夹已经存在,它将增加一些变量。

您可以阅读有关os.path.join here

的更多信息

根据创建文件夹,你可以这样做:

if not os.path.exists(directory):
    os.makedirs(mydir)

答案 1 :(得分:1)

我建议您使用os.path.joinos.path.sep

import os 
.
.
.
full_dir = os.path.join(base_dir, today.strftime('%Y{0}%m{0}%d').format(os.path.sep))

答案 2 :(得分:1)

我想通过

today = datetime.datetime.now()
year = today.strftime("%Y")
month=today.strftime("%m")
day=today.strftime("%d")
output = "/opt/output/"  + year +"/" + month + "/" + day

那对我来说很好用

答案 3 :(得分:0)

today.strftime('%Y%m%d')将今天的日期打印为20170607。但我想你希望它打印为2017/06/07。您可以显式添加斜杠并将其打印出来吗?

output = "/opt/output/" + today.year +"/" + today.month + "/" + today.date