Create new folder on Gdrive using pydrive module
Question:
Trying to create folder on google drive using pydrive
:
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
gauth = GoogleAuth()
gauth.LocalWebserverAuth()
drive = GoogleDrive(gauth)
Authentication works, I can download some files from my drive, etc.
But can’t figure out, how to create new folder. I’m trying:
folder_id = 'parent_folder_id'
file_metadata = {
'name': 'test_folder',
'parents': [folder_id],
'mimeType': 'application/vnd.google-apps.folder'
}
file = drive.files().create(body=file_metadata, fields='id').execute()
This gives error: 'GoogleDrive' object has no attribute 'files'
Seems i missing something from docs, not sure what exactly though.
Any help appreciated.
Answers:
The python sample code that is used in the create folder example uses google-api-python-client based on the Python Quickstart, You can refer to this Drive API documentation for the list of methods available in google-api-python-client.
pydrive has a different methods used for Creating and updating file. You need to use CreateFile(metadata) to create an instance of GoogleDriveFile then use Upload()
Sample Code:
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
gauth = GoogleAuth()
gauth.LocalWebserverAuth()
drive = GoogleDrive(gauth)
folder_id = 'parent_folder_id'
file_metadata = {
'name': 'test_folder',
'parents': [folder_id],
'mimeType': 'application/vnd.google-apps.folder'
}
folder = drive.CreateFile(file_metadata)
folder.Upload()
Additional Reference:
TO CREATE A NEW FOLDER IN GOOGLE DRIVE THROUGH PYTHON SCRIPT USING PYDRIVE MODULE
class Google_Drive:
def __init__(self, folder_id):
self.gauth = GoogleAuth()
self.gauth.LocalWebserverAuth()
self.drive = GoogleDrive(self.gauth)
self.folder_id = folder_id
def create_folder(self, folderName):
file_metadata = {
'title': folderName,
'parents': [{'id': self.folder_id}], #parent folder
'mimeType': 'application/vnd.google-apps.folder'
}
folder = self.drive.CreateFile(file_metadata)
folder.Upload()
Trying to create folder on google drive using pydrive
:
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
gauth = GoogleAuth()
gauth.LocalWebserverAuth()
drive = GoogleDrive(gauth)
Authentication works, I can download some files from my drive, etc.
But can’t figure out, how to create new folder. I’m trying:
folder_id = 'parent_folder_id'
file_metadata = {
'name': 'test_folder',
'parents': [folder_id],
'mimeType': 'application/vnd.google-apps.folder'
}
file = drive.files().create(body=file_metadata, fields='id').execute()
This gives error: 'GoogleDrive' object has no attribute 'files'
Seems i missing something from docs, not sure what exactly though.
Any help appreciated.
The python sample code that is used in the create folder example uses google-api-python-client based on the Python Quickstart, You can refer to this Drive API documentation for the list of methods available in google-api-python-client.
pydrive has a different methods used for Creating and updating file. You need to use CreateFile(metadata) to create an instance of GoogleDriveFile then use Upload()
Sample Code:
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
gauth = GoogleAuth()
gauth.LocalWebserverAuth()
drive = GoogleDrive(gauth)
folder_id = 'parent_folder_id'
file_metadata = {
'name': 'test_folder',
'parents': [folder_id],
'mimeType': 'application/vnd.google-apps.folder'
}
folder = drive.CreateFile(file_metadata)
folder.Upload()
Additional Reference:
TO CREATE A NEW FOLDER IN GOOGLE DRIVE THROUGH PYTHON SCRIPT USING PYDRIVE MODULE
class Google_Drive:
def __init__(self, folder_id):
self.gauth = GoogleAuth()
self.gauth.LocalWebserverAuth()
self.drive = GoogleDrive(self.gauth)
self.folder_id = folder_id
def create_folder(self, folderName):
file_metadata = {
'title': folderName,
'parents': [{'id': self.folder_id}], #parent folder
'mimeType': 'application/vnd.google-apps.folder'
}
folder = self.drive.CreateFile(file_metadata)
folder.Upload()