最有效的方式将所有STDIN输入转换为字符串
我正在为Python 2.7编写一个邮件解析器,这个解析器会通过sendmail调用,使用一个别名来运行,然后用email模块解析邮件,最后处理并存储到Oracle数据库中:
在/etc/aliases文件中:
myalias: | /my/python/script.py
我在将所有的标准输入(stdin)读入一个字符串对象时遇到了问题,这样我才能用email模块来处理:
import email
# Slurp stdin and store into message
message =
msg = email.message_from_string(message)
# Do something with it
print msg['Subject']
有什么高效的方法可以做到这一点吗?我试过使用stdin.readlines(),但结果是一个列表。
谢谢大家的帮助。(如果这听起来很菜鸟,我很抱歉... 我之前是用Perl的,现在想把工具标准化为Python,这只是我写的第二个脚本。其实也不是“被迫”,我一直想这么做,只是现在有了截止日期,才不得不加快进度)
1 个回答
29
sys.stdin.readlines()
会返回一个包含多行的列表。如果你想要的是一个长长的(多行的)字符串,可以使用 sys.stdin.read()
。