Создать каталог с именем даты и времени в подкаталоге (Python) - PullRequest
2 голосов
/ 28 октября 2011

В настоящее время я хочу создать каталог в Linux с использованием Python v2.7 с именем каталога в качестве даты и времени (т.е. 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 ]

2 голосов
/ 28 октября 2011

Конечно, просто сохраните время в переменной, а затем используйте эту переменную для подстановок:

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 и log.

0 голосов
/ 28 октября 2011

Звоните только time.localtime один раз.

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

csvafile = csvafmt % current_time 
csvbfile = csvbfmt % current_time 
logfile = logfmt % current_time
...