結論
GoogleDrive上で上書きしたいファイルのid
を確認し,そのid
を指定してGoogleDriveインスタンスを作成する.
f = drive.CreateFile(
{
'id': 'XXXXXXXXXXXXXXXXXX',
'title': 'data_invest.csv'
}
)
背景/原因
毎日,自分の保有している投資信託の基準価格を取得し,csvに保存した後,GoogleDriveにアップロードしている.(アップロード部のコードは下記)
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
gauth = GoogleAuth()
gauth.CommandLineAuth()
drive = GoogleDrive(gauth)
data_path = "/home/XXXXX/XXXX.csv"
f = drive.CreateFile(
{
'title': 'data_invest.csv'
}
)
f.SetContentFile(data_path)
f.Upload()
しかし,GoogleDriveはtitle
が同じだとしても,id
が同一かどうかで同じファイルかどうかを判断しているらしい.
上記コードだと,同じタイトルのファイルだとしても上書きされずに,新規ファイルとしてどんどん生成されてしまう.
まとめ
上書きしたいときはid
をきちんと指定しましょう.
参考
python3.7
pydrive 1.3.1