[sys.argv [0]]在python中的含义

时间:2015-11-18 07:18:55

标签: python email

我正在检查python脚本以发送带附件的电子邮件,并且遇到了代码行

attachments = [sys.argv[0]]

所以我不明白我是否必须通过这个OR传递我的附件路径变量或它如何自己获取附件文件路径或者它在下面的代码片段中意味着什么。

email = Email(from_='"%s" <%s>' % (name, email), #you can pass only email
          to='"%s" <%s>' % (to_name, to_email), #you can pass only email
          subject=subject, message=message, attachments=attachments)

所以如何/在哪里将我的附件文件(路径)传递给上面的代码。

请解释一下。或者任何人都可以给我一个例子,通过该例子我可以发送带有邮件正文的电子邮件以及附加到多个电子邮件ID。

3 个答案:

答案 0 :(得分:2)

将附件文件名添加到执行python文件的命令中:

python myfile.py attachment_file.txt

sys.argv[1]获取第一个命令行参数。

答案 1 :(得分:2)

您的代码建议用户作为命令行参数传递的第一个文件名将作为附件与邮件一起发送。因此

你必须使用

attachments = [sys.argv[1]]

而不是

attachments = [sys.argv[0]]
Email()中的

attachement参数需要一个文件名列表,并且您的脚本配置为仅发送一个文件作为附件。您可以使用

将其发送到多个文件
attachments = sys.argv[1:]

答案 2 :(得分:1)

我相信如果你改变你的代码这一行:

attachments = [sys.argv[0]]attachments = [sys.argv[1]],它应该适合您,因为命令行中的第一个参数(argv[0])是文件脚本的名称(myfile.py for例如)

对于附件的路径,id附件文件与脚本文件(myfile.py)在同一文件夹中,那么只有附件文件的名称就足够了,否则你需要提供完整的路径到你的附件。