スマートフォン用の表示で見る

【お得セット】スポーツスタッフ SUPER MABLE 31905 スーパーマーブル 3名 ゴムボート SPORTSSTUF バナナボート ウォータートーイ トーングチューブ





  • 商品情報

    商品説明

    スーパーマーブル 【お得セット】 トーングチューブ :31905-SET:JSPTOKAI SUPER MABLE ウォータートーイ SUPER ゴムボート バナナボート 31905 31905 MABLE 3名 SPORTSSTUF スポーツスタッフ
    malloc(sizeof(MRM)); 虚無・アクセラレーション

    スーパーマーブル 【お得セット】 トーングチューブ :31905-SET:JSPTOKAI SUPER MABLE ウォータートーイ SUPER ゴムボート バナナボート 31905 31905 MABLE 3名 SPORTSSTUF スポーツスタッフ

    スーパーマーブル 【お得セット】 トーングチューブ :31905-SET:JSPTOKAI SUPER MABLE ウォータートーイ SUPER ゴムボート バナナボート 31905 31905 MABLE 3名 SPORTSSTUF スポーツスタッフ 自動でGoogle Driveにファイルをアップロードする(Python)

    ぼく「OSと一緒にレポートを吹っ飛ばしてからデータ消えるのが怖すぎて毎秒 Google Drive にアップロードしてる」
    ともだち「自動化しろ、ぽまえ 情報科 やろ」
    ぼく「あっ、そっかあ」

    というわけでファイルを自動でアップロードするコードを書くことになりいろんなサイトの力を借りて書き上げました。今回の記事はそんときのメモです。

    必要なやつのインストールと申請

    今回は PyDrive google - api - python -client のインストールと Google への申請が必要になります。申請といってもめっちゃ単純なので心配ないです。
    端末にこのように打つとインストール出来ます。

    #↓↓↓pipがインストールされていない時に実行↓↓↓#$ sudo apt-get update$ sudo apt-get install python-pip#↑↑↑pipがインストールされていない時に実行↑↑↑#$ pip install google-api-python-client PyDrive 

    次は認証の説明…をしようと思ったのですが時間が無いのと長くなりそうなのといろいろあって認証をするにあたって参考にしたサイトを載せます。ごめんなさい。
    news.mynavi.jp

    setting. yaml を作業する ディレクト リに配置したら次はコードです。

    コード

    サイトを参考にしながらカタカタやったコードです。

    
    #coding:UTF-8
    
    from
    pydrive.auth 
    import
    GoogleAuth
    from
    pydrive.drive 
    import
    GoogleDrive
    from
    time 
    import
    sleep
    import
    datetime
    JSPTOKAIの【お得セット】スポーツスタッフ,SUPER,MABLE,31905,スーパーマーブル,3名 ゴムボート,,SPORTSSTUF バナナボート,ウォータートーイ,トーングチューブ:31905-SETならショッピング!ランキングや口コミも豊富なネット通販。更にお得なPayPay残高も!スマホアプリも充実で毎日どこからでも気になる商品をその場でお求めいただけます。アウトドア、釣り、旅行用品,カヌー、カヤック、ボート,ゴムボート本体
    #Googleの認証を行う
    gauth = GoogleAuth()gauth.LocalWebserverAuth()
    #Google Driveのオブジェクトを取得
    drive = GoogleDrive(gauth)f = drive.CreateFile({	
    
    'title'
    :
    'レポートが終わらないよおお.odt'
    ,	
    'mimeType'
    :
    'application/vnd.oasis.opendocument.text'
    })f.SetContentFile(
    '/home/admarimoin/ドキュメント/report/毎日徹夜.odt'
    )
    print
    (
    "Uploading..."
    )f.Upload()
    print
    (
    "Uploaded!"
    )
    #現在時刻を取得して表示
    富士工業 レンジフード【BDR-3FL-601S】【間口:600】【BDR3FL601S】【代引·後払決済不可】
    Varde77(バルデセブンティセブン)·US ARMY D-2 TYPE PARKA·
    ゴムボート4人乗り ジョイクラフト J-キャット315(予備検査無)
    ゴムボート5人乗り ジョイクラフト オレンジペコ323ワイド(予備検査付)
    CERAMICS EXAMPLE·自然感のある金属焼付ポーセレンの世界 (quinteffence books)
    [本/雑誌]/アジュバント開発研究の新展開 (ファインケミカルシリーズ)/石井健/監修 山西弘一/監修(単行本·ムック)
    法人印鑑 会社印鑑 チタン 実印 角印 2本セット ケース付 はんこ ハンコ 印鑑 会社実印 判子
    新品 ぺんてる シャープペンシル替芯 Ain 替芯 シュタイン 0.5mm 4H C275-4H 『 2個』並行輸入品
    1pc Guitar Cylinder Output Flush Mount Jack 1/4 Chrome High Quality ギターパーツ
    相撲用具 体操 保護 抗菌土俵マット(枚) EKM503 特殊送料(ランク:ウ) (ENW) (QCB02)
    ダイジェット TA EZドリル (TEZD2700S32-XLBODY)
    now = datetime.datetime.now() print ( "now:" + str (now)) #ファイルIDを取得して表示 file_id = f[ 'id' ] print ( 'id:' + file_id) try : while True : sleep( 3600 ) report = drive.CreateFile({ 'id' :file_id }) report.SetContentFile( '/home/admarimoin/ドキュメント/report/毎日徹夜.odt' ) print ( "Uploading..." ) report.Upload() print ( "Uploaded!" ) now = datetime.datetime.now() print ( "now:" + str (now)) except KeyboardInterrupt : print ( " \n cancel." )

    参考にしたサイト: https://news.mynavi.jp/article/zeropython-17/

    では コメントアウト で解説しなかった所以外を解説をしていこうと思います。

    f = drive.CreateFile({	
    'title'
    :
    'レポートが終わらないよおお.odt'
    ,	
    'mimeType'
    :
    'application/vnd.oasis.opendocument.text'
    })f.SetContentFile(
    '/home/admarimoin/ドキュメント/report/毎日徹夜.odt'
    )
    print
    (
    "Uploading..."
    )f.Upload()
    print
    (
    "Uploaded!"
    )

    ファイルをアップロードをします。 drive.CreateFile ではtitleが Google Drive にアップロードされるファイル名になります。ここでは、/home/admarimoin/ドキュメント/reportにある毎日徹夜.odtというファイルが Google Drive にはレポートが終わらないよおお.odtとして保存されることになります。
    mimeTypeは拡張子によって変わります。今回の例は.odtですが、.txtや.docxでmimeTypeが変わって来ます。
    mimeTypeがまとまっているサイトがあったのでこちらを参考にして変えてください。
    developer.mozilla.org

    f.SetContentFile にはアップロードするファイル名を記入します。今回の例は 絶対パス でファイルを指定してます。まあ個人的には 絶対パス 指定の方がいいかなとは思います。
    f.Upload() でファイルをアップロードしてます。print("Uploading...")と入れたのは個人的になんか途中経過が見えてる感があって好きだからです。特に深い意味はありません。print("Uploaded!")はあった方が確実にいいです。無いと心配になります。
    次はここです。

    
    try
    :	
    while
    
    True
    :		sleep(
    3600
    )		report = drive.CreateFile({			
    'id'
    :file_id			})		report.SetContentFile(
    '/home/admarimoin/ドキュメント/report/毎日徹夜.odt'
    )		
    print
    (
    "Uploading..."
    )		report.Upload()		
    print
    (
    "Uploaded!"
    )		now = datetime.datetime.now()		
    print
    (
    "now:"
    + 
    str
    (now))
    except
    
    KeyboardInterrupt
    : 	
    print
    (
    "
    
    \n
    
    cancel."
    )

    while True: で無限ループを作ります。 sleep(3600) で3600秒間(一時間)寝かせます。これを抜かすと毎秒アップロードするやべープログラムの完成です。
    で、 drive.CreateFile の'id'でさっき取得したIDを指定します。 Google Drive はすべてID管理されているので、ファイル名は同じでも同じファイル名のIDの違うファイルがたくさん生成されて大変なことになるのでIDで指定してやります。それ以降の6行はさっきやったことと同じなので省略します。
    try exceptについて…お話します。 except KeyboardInterrupt: はCtrl + C(作業を中断する時によくやるやつ)が押された時に実行されます。なので「Ctrl + Cが押されるまでtry:の所を実行したるけど押されたらexcept KeyboardInterrupt:の所実行したろ!w」という意味になります。なにわろてんねん。なんでこんなやつをわざわざ入れたのかというと、この文が無い状態で中断してやったらなんか文句つけられたからです。何故なのか。
    これで解説は以上です。拙い日本語でごめんなさい。お疲れ様でした。

    スターをつけました

    引用をストックしました

    引用するにはまずログインしてください

    引用をストックできませんでした。再度お試しください

    限定公開記事のため引用できません。

    読者です 読者をやめる 読者になる 読者になる