最有效的方式" Slurp"所有STDIN成为一个字符串

时间:2014-07-07 20:10:32

标签: python python-2.7 email io stdin

我正在为python 2.7编写一个电子邮件解析器,它将使用别名通过sendmail调用,使用电子邮件模块解析,然后处理并存储到oracle数据库中:

来自/ etc / aliases:

myalias:| /my/python/script.py

我无法将所有stdin“sl”到一个字符串对象中,我可以将其与电子邮件模块一起使用:

import email

# Slurp stdin and store into message
message =

msg = email.message_from_string(message)

# Do something with it
print msg['Subject']

最有效的方法是什么?我已经尝试过stdin.readlines()但它最终成为一个列表。

感谢任何帮助。 (对不起,如果这是noobish ...我是一个perl转换器,并被迫使用python标准化我的工具,这只是我的第二个脚本。好吧不是真的“强迫”,我一直想要这样做一段时间但不是像现在这样截止日期的枪支。)

1 个答案:

答案 0 :(得分:9)

sys.stdin.readlines()返回一个行列表。如果您想要的是一个长(多行)字符串,请使用sys.stdin.read()