34
42

More than 1 year has passed since last update.

Pythonでファイル名に現在時刻を付ける【初心者向け】

Last updated at Posted at 2019-06-22

Pythonでログ出力ファイルを作成するときに、ファイル名に現在時刻を入れたときのメモです。
あわせて、csv出力に関するメモも記載しておきます。

#現在日時の取得
datetime.datetime.now()で現在日時を取得できます。

print(datetime.datetime.now())

>>2019-06-22 09:44:54.569669

#サンプル
ファイル名に現在時刻を入れて作成するサンプルです。
datetime.strftime()で日付フォーマット指定します。

 now = datetime.datetime.now()
 filename = './output/log_' + now.strftime('%Y%m%d_%H%M%S') + '.csv'
 f = open(filename, 'w')
 writer = csv.writer(f, lineterminator='\n') 

実行すると、log_20190622_094828.csvのようなファイル名で作成されます。

##日付フォーマットの指定
ついでなので、C#のDateTime、DartのDateFormatのフォーマット指定と比較します。

フォーマット pyhton C# Dart
西暦(4桁) %Y yyyy yyyy
西暦(2桁) %y yy yy
月(2桁) %m MM MM
日(2桁) %d dd dd
時(2桁) %H HH HH
分(2桁) %M mm mm
秒(2桁) %S ss ss

月と分の大文字、小文字が逆なので、C#からPythonに移行する人はちょと注意が必要ですね。

#csvファイル出力
writer.writerow(リスト配列)を使います。

#リスト配列はそのまま、指定する
a = [1,2,3]
writer.writerow(a)
  
>>1,2,3

#Numpy配列は、tolist()でリスト配列に変換してから
b = np.array([10, 20, 30])
writer.writerow(b.tolist())

>>10,20,30

#文字列などは、[]でリスト配列にしてから
writer.writerow(["日付",now])
writer.writerow(["日付",now.strftime('%Y/%m/%d'),now.strftime('%H:%M:%S')])

>>日付,2019-06-22 11:38:23.506582
>>日付,2019/06/22,11:38:23

datetime形式をそのまま出力したときは、エクセルで開いたときにキレイじゃないです。
(エクセルのバージョンにもよるかも知れないですが。)
csv日付.JPG

34
42
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
42