Help us understand the problem. What is going on with this article?

【python】出力するデータのファイル名をユニークにする方法(年月日時秒を使う)

【python】出力するデータのファイル名をユニークにする方法(年月日時秒を使う)

pandasモジュールのto_csvメソッドでファイル名を指定して出力すると、上書きされて古いファイルがなくなってしまう。

ファイル名に実行した年月日時秒を含めることで、個別に出力し上書きを防ぐ方法。


やり方

以下のモジュールとメソッドを使用

①datetimeモジュール
 ②nowメソッド
 ③strftimeメソッド
④format関数


実例

コード
import datetime as dt
now = dt.datetime.now()

time = now.strftime('%Y%m%d-%H%M%S')

df.to_csv('~/desktop/output_{}.csv'.format(time), index=False, encoding='utf_8_sig')
image.png

実行するたびに個別のファイルが生成される。


各コードの中身

1. datetimeのnowメソッドで現在の時刻を求める。

datetimeのnowメソッド
import datetime as dt
now = dt.datetime.now()

now

#出力
# datetime.datetime(2020, 3, 27, 19, 16, 41, 332644)

datetimeについてはこちら


2. datetimeのstrftimeメソッドで日付の書式を指定する。

datetimeのstrftimeメソッド
time = now.strftime('%Y%m%d-%H%M%S')
time

#出力
#'20200327-191641'

・strftimeメソッドの詳しい説明はこちら

・指定子(%Yや%dなど)の種類についてはこちら


3. format関数でファイル名に変数が使えるようにする。

format関数
time = now.strftime('%Y%m%d-%H%M%S')

'output_{}.csv'.format(time)

#出力
# 'output_20200327-193206.csv'

format関数の詳細はこちら


4. to_csvメソッドでcsvファイルとして出力

csvファイル出力
df.to_csv('~/desktop/output_{}.csv'.format(time), index=False, encoding='utf_8_sig')

to_csvメソッドについてはこちら

yuta-38
メモとして活用してます
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away