[英]Running a system command through python not producing the same output
好的,这发生了不可思议的怪事。 我正在运行python脚本以产生一些输出并将其存储在文件中。 在脚本末尾,我正在使用子流程模块通过后缀发送邮件。 我跑
subprocess.call(['sudo mail -s "Subject" person@example.com < /path/to/file.txt'], shell=True)
这将执行,但会给出消息mail: Null message body; hope that's ok
mail: Null message body; hope that's ok
即使文件包含内容也可以。 而且我收到的电子邮件没有正文(但主题正确)。
当我直接运行命令时:
sudo mail -s "Subject" person@example.com < /path/to/file.txt
我在电子邮件中收到文件的内容。
这是怎么了? 它完全把我弄乱了!
不出所料,这是一个完全愚蠢的错误(这些是最好的错误)。
我不是在刷新文件句柄并发送邮件。 因此,邮件正文为空。 现在我正在使用
file_name.flush()
file_name.close()
subprocess.call(['sudo mail -s "Subject" person@example.com < /path/to/file.txt'], shell=True)
并且我收到的邮件有正文。 唷!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.