Как читать и писать в Google Таблицы с Python

Python — отличный язык программирования. Синтаксис может показаться странным и необычным, однако его легко изучить и использовать. Он поддерживает Minecraft Pi Edition, а также множество веб-сайтов и академических исследовательских проектов.

В этой статье я показать вам, как читать и писать в Google Таблицы с помощью Python. Если вы только начинаете свое путешествие по Python, эти 5 лучших веб-сайтов для изучения Python станут хорошей отправной точкой.

Google Setup

Перед тем, как перейти к коду, необходимо выполнить некоторую начальную настройку в Google Таблицах.

Сначала создайте себе новый лист. Вы можете пропустить этот шаг, если он у вас уже настроен. В этом примере я использую список раллийных автомобилей:

Теперь вам нужно настроить параметры совместного использования. Вам нужно будет сгенерировать подписанные учетные данные , что кажется более сложным, чем есть на самом деле. Перейдите в Google Developers Console и создайте новый проект (или используйте существующий):

Дайте вашему проекту подходящее имя и затем нажмите create :

Под API Google Apps выберите Drive API :

Выберите Включить :

Теперь выберите Credentials в левом меню:

Щелкните маленькую стрелку на кнопке Создать учетные данные :

Теперь выберите ключ учетной записи службы :

Выберите учетную запись службы по умолчанию для App Engine в разделе Учетная запись службы и JSON в формате:

Нажмите «Создать», и вы должны получить скачанный файл .json . Переместите его в каталог своего проекта и переименуйте в creds.json . Наконец, откройте файл и найдите client_email .. Это должно быть название вашего проекта на appspot.gserviceaccount.com . Поделитесь своей таблицей Google с этим адресом электронной почты ( справа вверху > Поделиться > Введите адрес электронной почты ).

Вот и все, что касается Google Диска.

Python Setup

Есть два основные версии Python: 2.7 и 3.x. Я буду использовать 2.7, но на самом деле не имеет значения, что вы используете. Если вам интересно, вики Python разбирает различия. Вы можете установить виртуальную среду. Это выходит за рамки данной статьи, но это хорошая практика.

Если вы используете Microsoft Windows, вам может потребоваться загрузить и установить Python. Mac OS поставляется с уже установленным Python. Поскольку я использую Mac, этот проект будет создан как таковой. Вы должны уметь достаточно хорошо следить на машине с Windows или Linux. Убедитесь, что вы прочитали наше руководство о том, следует ли вам переключаться.

Сначала откройте новый терминал. Вам нужно будет использовать pip для установки некоторых пакетов Python. Это рекомендуемый инструмент, который упрощает управление пакетами. Поставляется с Python.

Вам необходимо установить oauth2client. Oauth — это фреймворк для веб-авторизации. Я не буду вдаваться в подробности, но это необходимо, чтобы все работало правильно и надежно. Его легко установить с помощью pip:

  pip install oauth2client  

Вам также может потребоваться установить PyOpenSSL, в зависимости от ваших настроек :

  pip install PyOpenSSL  

Сейчас Вам необходимо установить Gspread от Антона Бурнашева на GitHub. Это отличная библиотека, написанная для упрощения доступа к Google Таблицам на Python. Опять же, это легко установить с помощью pip:

  pip install gspread  

Теперь откройте ваш любимый текстовый редактор (я используя Sublime Text 3). Создайте новый файл Python и сохраните его в каталоге проекта как google_io.py . Вот тестовый код:

  print 'Hello, World!'  

Вернитесь в свой Терминал и перейдите в каталог вашего проекта. Вы можете сделать это с помощью команды cd . Вы можете использовать ls для вывода списка файлов и pwd для отображения вашего рабочего каталога.

Попав в каталог проекта, вы можете выполнить свой скрипт Python следующим образом:

  python google_io.py  

Теперь вы должны увидеть Hello, World! в командной строке:

Теперь, когда Python работает правильно, давайте продолжим и настроим библиотеки. Удалите код hello world. Теперь импортируйте Gspread и снова выполните код:

  import gspread  

Если все работает правильно, ничего не произойдет. Если вы получаете сообщение об ошибке, например, нет модуля с именем X , где X — это имя модуля, который вы набрали (Gspread), перейдите и дважды проверьте, что pip установил модуль правильно, и что вы не сделали опечатка.

Вот код для начала:

  import json 
import gspread
from oauth2client.client import SignedJwtAssertionCredentials
json_key = json.load (open ('creds.json')) # учетные данные json, которые вы скачали ранее
scope = ['https://spreadsheets.google.com/feeds']
credentials = SignedJwtAssertionCredentials (json_key ['client_email'], json_key ['private_key']. encode (), scope) # получить адрес электронной почты и ключ из кредитов
file = gspread.authorize (credentials) # аутентифицировать с помощью Google
sheet = file.open ("MUO_Python_Sheet"). sheet1 # open sheet

Это просто извлекает ваши данные из файла .json , а затем использует их для аутентификации в Google. Затем он открывает лист с именем MUO_Python_Sheet . Возможно, вам придется изменить это имя на свой лист (при условии, что вы правильно поделились им). Python чувствителен к регистру, поэтому убедитесь, что вы правильно ввели этот код.

Чтение

Теперь, когда все готово setup, читать или записывать данные тривиально. Вот как вы выбираете диапазон ячеек (в данном случае все ячейки автомобиля):

  all_cells = sheet.range ('A1: C6') 
распечатать все_ячейки

Вот как это выглядит:

Не очень хорошо, правда? Python сбросил содержимое объекта без учета форматирования. Поскольку он хранится в переменной all_cells , к нему можно получить доступ, как к любому другому объекту Python. Вот как вы распечатываете все значения ячеек в более удобном формате:

  для ячейки в all_cells: 
print cell.value

И это выглядит так:

Можно получить доступ к ячейкам индивидуально (хотя это медленно, если вы делаете это много раз):

  A1 = sheet.acell ('A2'). Value # эта ячейка содержит "Ford"  

Или вы можете использовать координаты ячейки:

   corre = sheet.cell (3, 0) .value  

Легко получить все значения для строки:

   row = sheet.row_values ​​(1) # first row  

Или вы можете получить весь столбец. Это получает строку Модель :

  col = sheet.col_values ​​(2) # models  

Имейте в виду, что эти два метода не знают, сколько данных у вас есть. Если у вас всего три строки, будет возвращено несколько дополнительных пустых ячеек. Почти всегда лучше получить доступ к заранее определенному блоку ячеек.

Writing

Это так же просто для записи обратно в лист, и вы можете использовать имена или координаты ячеек, как при чтении:

  sheet.update_acell ('C2', 'Blue') 
sheet.update_cell (2, 3, 'Blue')

Страница проекта на GitHub есть еще много примеров.

Если вы пишете на важном листе, вы можете подумать о ячейке безопасности . Сохраните значение в определенной ячейке (я использую «Не удалять это»), а затем сначала прочтите эту ячейку. Если содержимое изменилось, значит, на вашем листе были добавлены или удалены столбцы, так что не продолжайте писать! Вот как этого можно достичь:

  if sheet.acell ('B3')! = 'БЕЗОПАСНОСТЬ': 
# что-то изменилось на листе, СДЕЛАЙТЕ НЕ ПРОДОЛЖАЙТЕ
поднять исключение ("Ой, я не готов к этому.")
else:
# продолжайте писать
sheet.update_acell ( 'C2', 'Синий')

Это хорошая практика. Это гарантирует, что ваш сценарий не сможет случайно записать в неправильный столбец. Это не замена правильным резервным копиям (у вас ведь есть резервные копии, не так ли?).

Теперь, когда вы знаете основы, идите и сделайте что-нибудь крутое! Узнайте, как использовать cron для планирования задач в Linux (или ознакомьтесь с альтернативой для Windows). Может быть, вы могли бы включить фоторамку или сделать офисную приборную панель — это то, что я сделал! Или почему бы не разместить веб-сайт Python с помощью Heroku?

Если вы также используете Excel, узнайте, как импортировать данные Excel в скрипты Python.

Оцените статью
cuterful.ru
Добавить комментарий