字符串变量值未显示在子流程.Popenpython中的python

2024-06-10 23:16:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python脚本,它的任务之一是向电子邮件地址发送邮件。下面是我的代码:

subject = "Some subject "+str(abc)
content = "Some content"
ml = subprocess.Popen('echo content | mutt -a "file_to_attach.log" -s subject -- myemailid@somedomain.in', shell=True)
ml.communicate()

上面的代码向我发送一封电子邮件,主题为“subject”,内容为“content”,而不是我分配给它们的字符串值。你能告诉我如何实现我的目标吗?谢谢。在


Tags: 代码echo脚本电子邮件地址邮件somecontent
3条回答
subject = "Some subject "+str(abc)
content = "Some content"
ml = subprocess.Popen('mutt -a "file_to_attach.log" -s subject   myemailid@somedomain.in', stdin=subprocess.PIPE, shell=True)
ml.communicate(content)

你已经打开了一个管道,提到stdin=子流程.管道并将内容传递给子进程

问题是您没有将contentsubject变量传递到subprocess.Popen调用中,请尝试以下代码:

subject = "Some subject "+str(abc)
content = "Some content"
ml = subprocess.Popen('echo "{content}" | mutt -a "file_to_attach.log" -s "{subject}"   myemailid@somedomain.in'.format(content=content, subject=subject), shell=True)
ml.communicate()

{1}和{1}用来调用你的内容。在

你可以试试这个:

subject = "Some subject "+str(abc)
content = "Some content"
ml = subprocess.Popen(['echo', content, '|', 'mutt', '-a', 'file_to_attach.log', '-s', subject, '  myemailid@somedomain.in'], shell=True)
ml.communicate()

相关问题 更多 >