LoginSignup
6
4

More than 3 years have passed since last update.

Google Driveにpythonからファイルをアップロードする際に,上書きされないで新ファイルとして保存されてしまうのを防ぐ.

Last updated at Posted at 2019-10-07

結論

GoogleDrive上で上書きしたいファイルの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
6
4
0

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
6
4