Как постоянно +1 к переменной вне цикла for - PullRequest
1 голос
/ 15 октября 2019

У меня есть скрипт Python, который извлекает данные криптовалюты из Yahoo Finance. Он очищает эти данные и затем вводит их в Google Sheet. Я хочу, чтобы этот сценарий выполнялся один раз в день, который я планирую через планировщик задач, и каждый день извлекаю данные из Yahoo Finance и затем вводю их в лист.

Я хочу, чтобы эта таблица сохраняла данныеисторически. Например, первый столбец = сегодняшние данные, второй столбец = завтрашние данные (которые сценарий будет собирать при запуске завтра), что означает, что значение столбца должно равняться +1 после выполнения сценария каждый раз. Я поместил номер столбца в переменную, поэтому я пытаюсь сделать следующее:

сегодня, c завтра, c + 1 день после, c + 2

ии так далее, чтобы лист заполнялся, а данные не перезаписывались. Я сомневаюсь, что есть способ навсегда изменить значение переменной, кроме как войти в скрипт и вручную изменить значение c перед его запуском. Есть ли другой способ сделать это?

Не уверен, как решить эту проблему - c = c + 1 в конце функции был моим лучшим предположением, но я знаю, что это не сработает. Единственное, о чем я могу подумать, это выписать эту функцию сотни раз, первый раз c = 1, второй раз c = 2 и т. Д. С «time.sleep (86400)» между функциями и постоянно запускать скриптно, как вы можете себе представить, я бы предпочел этого не делать.

def google_sheet_import(var1):
    r = 2
    c = 3
    for w in (var1):
        cc_worksheet.update_cell(r, c, w.text)
        r = r + 1

    google_sheet_import(intraday_price)

Все, что происходит, - это сценарий перезаписывает данные в c, потому что я не могу заставить его навсегда изменить значение c после сценария. пробеги.

1 Ответ

1 голос
/ 15 октября 2019

Чтобы удовлетворить ваши потребности, у вас есть много возможных вариантов:

  1. Сохраните значение c где-нибудь на вашем листе. После вставки нового столбца вы должны увеличить его, а перед вставкой нового столбца вы должны прочитать его и установить для него значение c.
  2. Сохранить переменную c в файле (см. open (python) и соответственно увеличивать его.
  3. Вероятно, наиболее разумный и код, для которого я предоставлю код. Вычислите количество столбцов на вашем листе, когда выполняется скрипт Python, а затем присвойте значение c на основе этого:
def google_sheet_import(var1):
    r = 2
    c = len(cc_worksheet.get_all_values()[0])
    for w in (var1):
        cc_worksheet.update_cell(r, c, w.text)
        r = r + 1

    google_sheet_import(intraday_price)

Единственное изменение - в 3-й строке,Для этого нужно проверить, какая из последних ячеек заполнена в первой строке (если ваша первая строка пуста или может быть пустой, я рекомендую установить ее на другую строку, которая, как вы знаете, будетзаселить).

...