2011-10-27 18 views
2

現在、Python v2.7を使用してディレクトリ名を日付と時刻(つまり、27-10-2011 23: 00:01)。 -ディレクトリ内にdatetimeの名前とサブファイルを含むディレクトリを作成する(Python)

import time 
import os 

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

このコードは正常に動作し、要求どおりにディレクトリを生成します。それにもかかわらず、私がしたいことは、このディレクトリ内に2つのcsvファイルと同じ名前のログファイルを作成することです。ディレクトリ名が動的に生成されるので、これらのファイルを作成するためにこのディレクトリに移動する方法は不明です。 3つのファイルと一緒にディレクトリを作成したいのですが、すべて同じ名前(csvファイルの先頭に文字が付きます)が必要です。例えば上記のように、 "27-10-2011 23:00:01"という名前のディレクトリを作成し、その中に "a27-10-2011 23:00:01.csvという2つのcsvファイル「b27-10-2011 23:00:01.csv」と「27-10-2011 23:00:01.log」というログファイルがあります。

ファイルの作成のための私のコードは以下の通りです: - 2番目は全体で同じままであるように、私はこれを行うことができますどのように

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

確かに、単に変数に時間を節約して、置換のためにその変数を使用します。

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

ありがとうございます。作成したディレクトリ内でこれらのファイルを作成するとどうなりますか?例えば ​​"logfmt"のように編集して、作成されたディレクトリへのパスを含むことができますか? – thefragileomen

+0

@thefragileomen - あなたのCSVファイルとログファイルの完全なパスを取得するように私の答えを編集しました。 –

+0

ありがとうございます。ありがとう。治療をしました。 – thefragileomen

0

は一度だけtime.localtimeを呼び出します。

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

csvafile = csvafmt % current_time 
csvbfile = csvbfmt % current_time 
logfile = logfmt % current_time 
+0

ありがとうございました。作成したディレクトリ内でこれらのファイルを作成するとどうなりますか?例えば ​​"logfmt"のように編集して、作成されたディレクトリへのパスを含むことができますか? – thefragileomen

関連する問題