CSV
datetime
pandas
Python3
codecs

その日付を自動でcsvファイル名に含ませる&utf-8とshift-jisのcsvをエンコードエラーを無視して作成(備忘録)


その日の日付をファイル名に自動で含むようにしたい

個人的には、エクセルでもファイルを使うので、utf-8とshift-jisの両方のファイルを同時に作りたい。

また、jupyter上で動かしてるものを単にコピーしています。

import datetime

#今日の日付を取り出し
now = datetime.datetime.today()
date = str(now.strftime("%y%m%d"))

#ファイルの内容を表す語句と、バージョンを指定
file_name = 'ファイル名' +'ver1.0'
utf_8_file_name = date + '_' + file_name + '.csv'
shift_jis_file_name = date + '_' + file_name + '_shift_jis.csv'
print(utf_8_file_name)
print(shift_jis_file_name)


続いてファイルの保存

import pandas as pd

import codecs

#データエクスポートの関数を定義
def df_to_csv(df):
df.to_csv(utf_8_file_name, encoding='utf_8')
with codecs.open(shift_jis_file_name, 'w', 'shift_jisx0213', 'ignore') as f:
df.to_csv(f)

#関数を実行
df_to_csv('保存したいpandas df')

codesを使い、'ignore'を指定してあげることで、エンコーディングエラーを回避できる。