Skip to content

Repository files navigation

PyDrive

PyDrive is a wrapper library of google-api-python-client that simplifies many common Google Drive API tasks.

Project Info

Features of PyDrive

  • Simplifies OAuth2.0 into just few lines with flexible settings.
  • Wraps Google Drive API into classes of each resource to make your program more object-oriented.
  • Helps common operations else than API calls, such as content fetching and pagination control.

How to install

You can install PyDrive with regular pip command.

$ pip install PyDrive

OAuth made easy

Download client_secrets.json from Google API Console and OAuth2.0 is done in two lines. You can customize behavior of OAuth2 in one settings file settings.yaml.

frompydrive.authimportGoogleAuthfrompydrive.driveimportGoogleDrivegauth=GoogleAuth()
gauth.LocalWebserverAuth()
drive=GoogleDrive(gauth)

File management made easy

Upload/update the file with one method. PyDrive will do it in the most efficient way.

file1=drive.CreateFile({'title': 'Hello.txt'})
file1.SetContentString('Hello')
file1.Upload() # Files.insert()file1['title'] ='HelloWorld.txt'# Change title of the filefile1.Upload() # Files.patch()content=file1.GetContentString() # 'Hello'file1.SetContentString(content+' World!') # 'Hello World!'file1.Upload() # Files.update()file2=drive.CreateFile()
file2.SetContentFile('hello.png')
file2.Upload()
print('Created file %s with mimeType %s'% (file2['title'], file2['mimeType']))
# Created file hello.png with mimeType image/pngfile3=drive.CreateFile({'id': file2['id']})
print('Downloading file %s from Google Drive'%file3['title']) # 'hello.png'file3.GetContentFile('world.png') # Save Drive file as a local file# or download Google Docs files in an export format provided.# downloading a docs document as an html file:docsfile.GetContentFile('test.html', mimetype='text/html')

File listing pagination made easy

PyDrive handles file listing pagination for you.

# Auto-iterate through all files that matches this queryfile_list=drive.ListFile({'q': "'root' in parents"}).GetList()
forfile1infile_list:
print('title: %s, id: %s'% (file1['title'], file1['id']))
# Paginate file lists by specifying number of max resultsforfile_listindrive.ListFile({'maxResults': 10}):
print'Received %s files from Files.list()'%len(file_list) # <= 10forfile1infile_list:
print('title: %s, id: %s'% (file1['title'], file1['id']))

About

Google Drive API Python wrapper library

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages