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”,但我仍然不确定。

谢谢

4

2 回答 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 和日志文件的完整路径。

于 2011-10-27T23:10:04.037 回答
0

只调用time.localtime一次。

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

csvafile = csvafmt % current_time 
csvbfile = csvbfmt % current_time 
logfile = logfmt % current_time
于 2011-10-27T23:09:08.720 回答