我是 python 和 Google API 的業余愛好者。我必須創建腳本,將檔案夾中的所有 CSV 作為表格上傳到 Google Drive。到目前為止,我有這個腳本,它使用 gspread 將一個 csv 檔案上傳到一個指定的 Google Sheet。我有很多這些 CSV,我需要將它們作為表格上傳到谷歌驅動器。我找不到處理多個 CSV 檔案的解決方案。
import gspread
gc = gspread.oauth(credentials_filename='/users/krzysztofpaszta/credentials.json')
content = open('ONETTF-Projects-INFO.csv', 'r').read().encode('utf-8')
gc.import_csv('1gv-bKe-flo5FwIbt_xgCp1vNn0L0KBnpiu', content)
所有資訊都是關于上傳一個 csv 檔案的。有人可以給我一些提示如何設法上傳帶有 csv 檔案的檔案夾,以便將所有檔案保存在 Google Drive 中作為作業表嗎?
謝謝您的幫助。
編輯:正如@metamorporpoise 建議的那樣,我已經修改了腳本,我非常接近,因為我可以看到在谷歌驅動器中查看腳本實際上正在上傳我所有的 CSV 但同時它正在用新的替換匯入的 CSV一。那是因為這些檔案是在同一張紙上上傳的。
import gspread
import os
gc = gspread.oauth(credentials_filename='/users/krzysztofpaszta/credentials.json')
os.chdir('/users/krzysztofpaszta/CSVtoGD')
files = os.listdir()
for filename in files:
if filename.split(".")[1] == "csv":
content = open(filename, 'r').read().encode('utf-8')
gc.import_csv('1gv-bKe-flo5FwIbt_xgCp1vNn0L0KBnpiuRak9a1efQ', content)
有沒有辦法修改 gc.import_csv 以將這些檔案匯入不同的作業表?
uj5u.com熱心網友回復:
雖然我對 gspread 包并不完全熟悉,但我知道 os 包對于遍歷檔案夾中的檔案非常有幫助。你不需要安裝 os,因為它應該已經隨 Python 一起提供了。你可以像這樣使用它:
import gspread
import os
gc = gspread.oauth(credentials_filename='/users/krzysztofpaszta/credentials.json')
os.chdir(FOLDER_PATH)
files = os.listdir()
for filename in files:
if filename.split(".")[1] == "csv":
content = open(filename, 'r').read().encode('utf-8')
gc.import_csv('1gv-bKe-flo5FwIbt_xgCp1vNn0L0KBnpiu', content)
您需要替換FOLDER_PATH為存盤 csv 的檔案夾的路徑,該路徑相對于您運行 python 腳本的目錄。該if filename.split(".")[1] == "csv":行用于確保腳本僅嘗試上傳 csv 檔案并忽略任何其他型別的檔案。我并不完全熟悉 gc.import_csv() 命令中的第一個引數在做什么,因此如果它特定于您之前嘗試上傳的特定 csv,則可能會導致問題。希望這可以幫助!
編輯:在查看 import_csv() 函式時,似乎我當前的代碼會一遍又一遍地不斷覆寫同一個電子表格。似乎您需要為每個檔案創建新的電子表格,然后將file_id作為引數傳遞給import_csv()每次
EDIT2:嘗試在 if 陳述句之后添加這一行:
sh = gc.create(filename.split(".")[0])然后將當前作為 import_csv() 的第一個引數的長字串替換為sh.id. 我希望這行得通!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/483584.html
