从实时Google表格中提取数据并通过电子邮件发送给我

时间:2016-05-14 15:55:50

标签: python python-3.x google-sheets smtplib gspread

我需要从Google表格中提取用户名和扩展名,然后每周一次通过电子邮件发送给用户。我写了一个非常不优雅的解决方案,我将在下面附上。我确信它可以通过一个写得很好的循环和一些逻辑来大大减少。我很欣赏任何朝着正确方向的推动。两天前我开始研究零编程知识,所以请原谅任何明显的错误!

电子邮件问题: 我需要在每个主题行中输入每个row_number([3])+'obfuscated.com',然后将row_number([1])插入到每个主体中。

编辑:为了澄清,我只需手动在每行变量中写入。用户数量每周都在变化,但我写了四十,因为它永远不会超过它。

import gspread
import json
from oauth2client.service_account import ServiceAccountCredentials
json_key = json.load(open('obfuscated'))
scope = ['https://spreadsheets.google.com/feeds']
credentials =        ServiceAccountCredentials.from_json_keyfile_name('obfuscated.json',
scope)
gc = gspread.authorize(credentials)

sh = gc.open_by_key('obfuscated')
worksheet = sh.get_worksheet(0)


row_1 = worksheet.row_values(2)
print(row_1[3]+'@obfuscated')
print(row_1[1])

row_2 = worksheet.row_values(3)
print(row_2[3]+'@obfuscated')
print(row_2[1])

对不起 - 这是.csv https://www.dropbox.com/s/i5p3m32m2huiffr/example-march.csv?dl=0

@Racialz - 我需要附加'@ obfuscated.com'的用户名和个人扩展名作为我可以插入许多电子邮件的变量。

1 个答案:

答案 0 :(得分:1)

在这里,我花了很长时间才终于使用你的数据进行设置并设置了一个与gspread一起使用的outh,但之后它非常简单。

currentRow = 2
while 1:
    thisRow = worksheet.row_values(currentRow)

    if (thisRow[1] == ""):
        break

    username = thisRow[3] + "@obfuscated.com"
    personalExtension = thisRow[1]

    #email sending code goes here
    print(username, personalExtension)
    currentRow += 1

您只需在索引[3]处获取用于个人分机的用户名和项目[1]的项目。它循环直到它没有个人扩展的行。这适用于任意数量的电子邮件。