在目录中创建带有日期时间名称和子文件的目录(Python)

2 投票
2 回答
3039 浏览
提问于 2025-04-17 05:09

我现在想用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”的目录,然后在这个目录里创建两个csv文件,分别叫“a27-10-2011 23:00:01.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”,但我还是不太确定。

谢谢

2 个回答

0

只需要调用一次 time.localtime

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

csvafile = csvafmt % current_time 
csvbfile = csvbfmt % current_time 
logfile = logfmt % current_time
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和日志文件的完整路径。

撰写回答