首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导出并输出另一个py代码,并将其控制台结果与电子邮件代码一起发送

导出并输出另一个py代码,并将其控制台结果与电子邮件代码一起发送
EN

Stack Overflow用户
提问于 2019-04-16 22:09:09
回答 1查看 36关注 0票数 0

我有两个代码,一个用于发送电子邮件(works),另一个用于从链接中提取信息(metro.py)。

我要做的是:转到电子邮件代码,导入metro.py和,并在电子邮件正文中发送metro.py结果。如何获得metro.py结果并使用body发送它?

我尝试导入metro,然后在正文文本中设置metro : sent_body = (metro),但不起作用。

代码语言:javascript
复制
import smtplib
import metro


gmail_user = 'email@gmail.com'
gmail_app_password = 'password'
sent_from = gmail_user
sent_to = ['receive@gmail.com']
sent_subject = "Email Teste"
sent_body = ("")

email_text = """\
From: %s
To: %s
Subject: %s

%s
""" % (sent_from, ", ".join(sent_to), sent_subject, sent_body)

try:
    server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
    server.ehlo()
    server.login(gmail_user, gmail_app_password)
    server.sendmail(sent_from, sent_to, email_text)
    server.close()

    print('Email sent!')
except Exception as exception:
    print("Error: %s!\n\n" % exception)
代码语言:javascript
复制
METRO:

import requests
import ast


source = requests.get('http://apps.cptm.sp.gov.br:8080/AppMobileService/api/LinhasMetropolitanas')
content_list=ast.literal_eval(source.content.decode("utf-8"))
for d in content_list:
    print(d['Nome'],d['Status'])

我希望我可以通过电子邮件发送来自麦德龙的输出。

EN

回答 1

Stack Overflow用户

发布于 2019-04-16 22:32:21

您可以将metro转换为一个函数。

如下所示: import请求import ast

代码语言:javascript
复制
def get_data():
    source = requests.get('http://apps.cptm.sp.gov.br:8080/AppMobileService/api/LinhasMetropolitanas')
    content_list=ast.literal_eval(source.content.decode("utf-8"))
    #for d in content_list:
    #   print(d['Nome'],d['Status'])
    return content_list

然后在你的另一个文件中,像这样导入函数from metro import get_data。这应该可以让你的代码正常工作。*假设您的代码文件都在同一目录中*

然后,为了获得电子邮件正文,它应该类似于sent_body = get_data(),或者您可以对数据进行一些处理,因为它只是返回原始结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55710202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档