使用目录中的日期时间名称和子文件创建目录(Python)

问题描述 投票:2回答:2

我目前正在寻找使用Python v2.7在Linux上创建一个目录,目录名称为日期和时间(即27-10-2011 23:00:01)。我的代码如下: -

import time
import os

dirfmt = "/root/%4d-%02d-%02d %02d:%02d:%02d"
dirname = dirfmt % time.localtime()[0:6]
os.mkdir(dirname)

此代码工作正常,并按请求生成目录。尽管如此,我还想在此目录中创建两个csv文件和一个具有相同名称的日志文件。现在,由于目录名是动态生成的,我不确定如何进入此目录来创建这些文件。我希望目录和三个文件都具有相同的名称(csv文件将以字母为前缀)。因此,例如,鉴于上述情况,我想创建一个名为“27-10-2011 23:00:01”的目录,然后在其中,两个名为“a27-10-2011 23:00:01.csv”的csv文件“和”b27-10-2011 23:00:01.csv“和一个名为”27-10-2011 23:00:01.log“的日志文件。

我的文件创建代码如下: -

csvafmt = "a%4d-%02d-%02d %02d:%02d:%02d.csv"
csvbfmt = "b%4d-%02d-%02d %02d:%02d:%02d.csv"
logfmt = "%4d-%02d-%02d %02d:%02d:%02d.log"

csvafile = csvafmt % time.localtime()[0:6]
csvbfile = csvbfmt % time.localtime()[0:6]
logfile = logfmt % time.localtime()[0:6]

fcsva = open(csvafile, 'wb')
fcsvb = open(csvbfile, 'wb')
flog = open(logfile, 'wb')

有什么建议我怎么做才能让第二个保持不变?我很欣赏这段代码只需要一瞬间运行,但在这段时间内,第二条可能会改变。我认为关键在于改变“time.localtime”,但我仍然不确定。

谢谢

python createfile
2个回答
2
投票

当然,只需将时间保存在变量中,然后将该变量用于替换:

now = time.localtime()[0:6]
dirname = dirfmt % now
csvafile = os.path.join(dirname, csvafmt % now)
csvbfile = os.path.join(dirname, csvbfmt % now)
logfile = os.path.join(dirname, logfmt % now)

编辑包括创建csv和日志文件的完整路径。


0
投票

只打电话给time.localtime一次。

current_time = time.localtime()[0:6]

csvafile = csvafmt % current_time 
csvbfile = csvbfmt % current_time 
logfile = logfmt % current_time
© www.soinside.com 2019 - 2024. All rights reserved.