Python循环并将打印输出附加到电子邮件消息的变量

时间:2013-07-18 19:09:08

标签: python

我是Python的新手,我使用的是Python-2.7.3,在搜索完空白之后,我想我会问社区。

我试图基本上将每次迭代捕获到变量,因此我可以将该变量用作我的电子邮件的正文。我不想写一个文件然后用它作为我的身体。

我试过这个没有运气:

    for sourceFile in sortedSourceFiles:
        print "Checking '%s' " % sourceFile += MsgBody

以下是我运行时的结果:

  File "check_files_alert.py", line 76
    print "Checking '%s' " % sourceFile += MsgBody
                                         ^
SyntaxError: invalid syntax

抱歉新手问题。
感谢

4 个答案:

答案 0 :(得分:1)

问题不明确。您要么捕获标准输出,要么想要打印然后追加或只是追加。我会回答这三个问题。

如果您有一个打印的功能,但您不希望它打印,而是将其打印输出放入列表中,那么您要做的就是捕获stdout流。有关如何操作,请参阅this question

如果你想打印然后追加,那么你可以做这样的事情

for sourcefile in sortedsourcefiles:
    MsgBody += sourceFile
    print "Checking %s" % MsgBody

如果您只是想附加它,那么这就足够了。

for sourcefile in sortedsourcefiles:
    MsgBody += sourceFile

希望这有帮助。如果您有任何疑问,请询问。

答案 1 :(得分:0)

您可能希望这样做:

for sourcefile in sortedsourcefiles:
    MsgBody += sourceFile
    print "Checking %s" % MsgBody

您之前的代码将其转换为字符串,然后尝试添加到其中。

答案 2 :(得分:0)

我真的不确定你在这里要做什么。如果您想保留变量,为什么要使用print

如果你只是想连接MsgBody中的行,你应该这样做:

for sourceFile in sortedSourceFiles:
    MsgBody += "Checking '%s' \n" % sourceFile 

甚至更好:

MsgBody = '\n'.join("Checking '%s'" % sourceFile for sourceFile in sortedSourceFiles)

答案 3 :(得分:0)

for sourceFile in sortedSourceFiles:
  MsgBody += sourceFile