Python os.system工作在内联但不作为变量

时间:2015-02-03 01:25:16

标签: python email xmpp hangout

此功能会在EMAIL变量中向收件人发送Google环聊消息。

它适用于以下情况,其中电子邮件内联没有引号。

import os
EMAIL='in06khattab@gmail.com'

os.system('sudo echo "jjj" | sendxmpp -v -t in06khattab@gmail.com') #send hangouts message

但是,当我将变量插入其位置时,它不会发送。没有错误消息,调试似乎正在发送,但我认为它是发送到' in06khattab@gmail.com'而不是in06khattab@gmail.com。所以它可能包括引号,

os.system('sudo echo "jjj" | sendxmpp -v -t EMAIL') #send hangouts message

2 个答案:

答案 0 :(得分:3)

Python不会像这样解释字符串中的变量。

使用连接:

os.system('sudo echo "jjj" | sendxmpp -v -t ' + EMAIL)

或字符串格式:

os.system('sudo echo "jjj" | sendxmpp -v -t %s' % EMAIL)

答案 1 :(得分:2)

为了向前兼容性和可读性,我建议您使用format替换EMAIL变量。

os.system('sudo echo "jjj" | sendxmpp -v -t {email}'.format(email=EMAIL))

请参阅this thread了解为何这比%编码

更可取