python google drive api_Python管理Google Drive文件
背景
Google Drive給我們提供了很多管理和共享文件的簡便方法,而且還是免費(fèi)的(當(dāng)然免費(fèi)賬戶有一定存儲(chǔ)限制)。但是,對(duì)于某些edu用戶,Google Drive存儲(chǔ)不僅是免費(fèi)的,而且是無配額限制的。您是否想知道如何從數(shù)據(jù)科學(xué)的角度充分利用這種免費(fèi)的云存儲(chǔ)服務(wù)? 實(shí)際上,這并不困難,我們可以使用Python輕松實(shí)現(xiàn)訪問和管理Google Drive文件。
設(shè)置Google Service API認(rèn)證
首先,我們需要獲取Google Service API的身份驗(yàn)證文件,以便我們的Python代碼可以訪問Google Drive。 為此,我們需要:
在Google Developer Console 頁面建立一個(gè)新項(xiàng)目(如下圖所示)
你可以給這個(gè)項(xiàng)目一個(gè)名字,也可以設(shè)為默認(rèn)值。
點(diǎn)擊”ENABLE APIS AND SERVICES”開通API服務(wù)(如下圖所示).
然后頁面會(huì)轉(zhuǎn)到下面的截圖。
在上面的搜索框內(nèi)搜索”Google Drive”,我們會(huì)得到如下界面。
點(diǎn)擊”Google Drive API”,進(jìn)入下一個(gè)界面。
點(diǎn)擊”ENABLE”開通Google Drive API服務(wù),進(jìn)入下一個(gè)界面。
點(diǎn)擊”CREATE CREDENTIALS”創(chuàng)建密碼信息。
在上面的截圖中點(diǎn)擊”client ID”,然后在下一個(gè)界面中點(diǎn)擊”CREATE”,并下載創(chuàng)建成功的JSON密碼文件如下。
下載的JSON文件就是Python程序讀寫Google Drive所需要的Google Serivces認(rèn)證文件。
安裝使用PyDrive
下面我們就可以通過在終端運(yùn)行pip install pydrive安裝PyDrive庫,并使用PyDrive庫管理和讀寫Google Drive文件。
下面的代碼將完成Google Drive用戶認(rèn)證,并列出Google Drive根目錄下的所有文件。需要說明的是,我們需要把上面步驟中下載的JSON文件另存為client_serets.json文件,并把它放到Python程序所在的存儲(chǔ)文件下。
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
# Rename the downloaded JSON file to client_secrets.json
# The client_secrets.json file needs to be in the same directory as the script.
gauth = GoogleAuth()
drive = GoogleDrive(gauth)
# List files in Google Drive
fileList = drive.ListFile({'q': "'root' in parents and trashed=false"}).GetList()
for file1 in file_list:
print('title: %s, id: %s' % (file1['title'], file1['id']))
每次運(yùn)行上面的代碼,程序都會(huì)自動(dòng)打開一個(gè)瀏覽器頁面讓用戶填寫Google用戶名和密碼。為了避免每次都填寫用戶名和密碼,我們可以創(chuàng)建一個(gè)settings.yaml文件,如下所示完成相關(guān)設(shè)置。settings.yaml文件的具體信息可參見PyDrive官方文檔。
client_config_backend: settings
client_config:
client_id: your_client_id
client_secret: your_client_secret
save_credentials: True
save_credentials_backend: file
save_credentials_file: credentials.json
get_refresh_token: True
oauth_scope:
- https://www.googleapis.com/auth/drive.file
其中, client_id和client_secret可以通過下面所示的截圖獲得。
重新運(yùn)行上面的Python代碼,程序?qū)⒁竽俅屋斎隚oogle密碼。 然后它將創(chuàng)建一個(gè)credientials.json文件。 再次運(yùn)行時(shí),Python會(huì)自動(dòng)提取該文件中的內(nèi)容完成身份驗(yàn)證,這樣我們就不需要再次輸入密碼了。
利用下面的代碼,我們就可以把本地文件上傳到Google Drive指定的文件夾里。
# Upload files to your Google Drive
upload_file_list = ['google_console1.png', 'google_console2.png']
for upload_file in upload_file_list:
gfile = drive.CreateFile({'parents': [{'id': '1pzschX3uMbxU0lB5WZ6IlEEeAUE8MZ-t'}]})
# Read file and set it as a content of this instance.
gfile.SetContentFile(upload_file)
gfile.Upload() # Upload the file.
上面的代碼將兩個(gè)本地文件google_console1.png和google_console2.png上傳到我的Google Drive文件夾test/中。 為此,PyDrive庫將在Google Drive中創(chuàng)建兩個(gè)文件,然后讀取并將本地的兩個(gè)文件上傳到相應(yīng)的文件中。 此處,我們需要提供相應(yīng)Google Drive文件夾的id。 在此示例中,test文件夾的ID為1pzschX3uMbxU0lB5WZ6IlEEeAUE8MZ-t。 小竅門:我們可以從瀏覽器中獲取Google Drive文件夾ID。 例如,當(dāng)我在Google Drive中打開test文件夾時(shí),瀏覽器將地址顯示為https://drive.google.com/drive/folders/1pzschX3uMbxU0lB5WZ6IlEEeAUE8MZ-t。test文件夾的相應(yīng)ID是瀏覽器地址欄中最后一個(gè)符號(hào)后的部分,即1pzschX3uMbxU0lB5WZ6IlEEeAUE8MZ-t。
同樣,我們也可以使用以下代碼直接將文件寫入Google Drive:
file1 = drive.CreateFile({
'parents': [{'id': '1pzschX3uMbxU0lB5WZ6IlEEeAUE8MZ-t'}],
'title': 'Hello.txt'}) # Create GoogleDriveFile instance with title 'Hello.txt'.
file1.SetContentString('Hello World!') # Set content of the file from given string.
file1.Upload()
我們也可以用下面的代碼直接讀取Google Drive里的文件。
file2 = drive.CreateFile({'id': file1['id']})
file2.GetContentString('Hello.txt')
總結(jié)
通過這篇文章,我們學(xué)習(xí)了如何使用PyDrive直接管理Google Drive中的文件(包括讀寫和創(chuàng)建)。 主要步驟如下:
設(shè)置Google DriveAPI并創(chuàng)建認(rèn)證文件
安裝PyDrive并完成身份驗(yàn)證
使用Python管理Google Drive文件(比如上傳和讀寫)
更多PyDrive的使用和文件管理功能請參見PyDrive官方網(wǎng)站。
總結(jié)
以上是生活随笔為你收集整理的python google drive api_Python管理Google Drive文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 毕业论文中含有Java需要哪些参考文献_
- 下一篇: jquery网页刷新后控件失效_jque