繁体   English   中英

通过python运行系统命令不会产生相同的输出

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM