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')
これで書き出しを実行すれば、都度個別のファイルが生成されます。
各コードの中身解説
各処理の内容は以下のようになっています。
datetimeのnowメソッド
datetimeのnowメソッドで現在の時刻を求めています。
import datetime as dt
now = dt.datetime.now()
now
#出力
# datetime.datetime(2020, 3, 27, 19, 16, 41, 332644)
出力結果のdatetime.datetimeというのは型の種類です。
datetimeのstrftimeメソッド
datetimeのstrftimeメソッドで日付の書式を指定しています。
time = now.strftime('%Y%m%d-%H%M%S')
time
#出力
#'20200327-191641'
strftimeメソッドや指定子についての詳しい説明は以下をご参考ください。
- 日付のフォーマット(表示書式)を変更する方法|strftimeとformatの使い方を実例でわかりやすく解説
- datetimeモジュールの指定子まとめ。macとwindowsの指定方法(%Y, %y, %m, %Mなどの違い)
format関数
format関数を使って、ファイル名を変数で指定するようにしています。
time = now.strftime('%Y%m%d-%H%M%S')
'output_{}.csv'.format(time)
#出力
# 'output_20200327-193206.csv'
format関数についての詳しい説明は以下をご参考ください。
・これでわかった!format関数の使い方まとめ。実例でわかりやすく解説
to_csvメソッド
最後に、to_csvメソッドでcsvファイルとして出力しています。
df.to_csv('~/desktop/output_{}.csv'.format(time), index=False, encoding='utf_8_sig')
to_csvメソッドにについての詳しい説明は以下をご参考ください。