Created
August 10, 2019 10:57
-
-
Save lowweihong/6e5b470e706365840f5cbe428c707f95 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from pydrive.auth import GoogleAuth | |
from pydrive.drive import GoogleDrive | |
import requests | |
import pandas as pd | |
from datetime import datetime, timedelta | |
from bs4 import BeautifulSoup | |
import os | |
def create_folder(drive, folder_name, parent_folder_id): | |
""" | |
Create folder on Google Drive | |
""" | |
folder_metadata = { | |
'title': folder_name, | |
# Define the file type as folder | |
'mimeType': 'application/vnd.google-apps.folder', | |
# ID of the parent folder | |
'parents': [{"kind": "drive#fileLink", "id": parent_folder_id}] | |
} | |
folder = drive.CreateFile(folder_metadata) | |
folder.Upload() | |
# Return folder informations | |
return folder['id'] | |
def upload_file(drive, folder_id, path_to_file, file_title): | |
file = drive.CreateFile({"parents": [{"kind": "drive#fileLink", "id": folder_id}]}) | |
file.SetContentFile(path_to_file) | |
file['title'] = file_title | |
file.Upload() | |
# Get File List | |
file_list = drive.ListFile( | |
{'q': "'{}' in parents and trashed=false".format(current_google_folder_id)} | |
).GetList() | |
# Get all title of the file list | |
if len(file_list) == 0: | |
folder_id = create_folder(drive, stock_name, current_google_folder_id) | |
else: | |
# Check if folder already exist | |
for index, file in enumerate(file_list): | |
if file['title'] == stock_name: | |
folder_id = file['id'] | |
break | |
elif index == len(file_list) - 1: | |
folder_id = create_folder(drive, stock_name, current_google_folder_id) | |
else: | |
pass | |
# Loop through all the files, and upload them one by one to folder | |
for f in os.listdir(default_folder): | |
upload_file(drive, folder_id, os.path.join(default_folder, f), f) | |
for file in os.listdir(default_folder): | |
os.remove(os.path.join(default_folder, file)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment