Python在参数中替换动态变量

时间:2015-04-06 18:23:24

标签: python variables arguments

我的聊天脚本需要执行四个参数:

#!/usr/bin/python
import sys
import argparse
import xmpp

def main(argv):
    parser = argparse.ArgumentParser()
    parser.add_argument('-c', dest='contact', required=True)
    parser.add_argument('-u', dest='username', required=True)
    parser.add_argument('-p', dest='password', required=True)
    parser.add_argument('-m', dest='message', required=False, default='')
    args = parser.parse_args(argv)

    if (args.message == '') and not sys.stdin.isatty():
        for line in sys.stdin:
            args.message = args.message + line

    jid = xmpp.protocol.JID(args.username)
    jabber = xmpp.Client(jid.getDomain(), debug=[])
    jabber.connect(server=(jid.getDomain(), 5222) )
    jabber.auth(jid.getNode(), args.password)

    jabber.send(xmpp.Message(args.contact, args.message.strip()))

if __name__ == "__main__":
    main(sys.argv[1:])

我从另一个名为listen.py的python脚本中调用此chat.py,如下所示:

...
import chat
...
chat.main(['-c', 'user@server.com', '-u', 'fromme@server.com', '-p', 'password', '-m', 'Yo Yo Yo Wassup'])
...

这是我的问题,我一直在尝试在我的参数中使用变量。如果我有以下内容:

from = "fromme@server.com"
to = "toyou@server.com"
pass = "password"
message = "Yo Yo Yo Wassup"

我想在chat.main中使用这些变量:

chat.main(['-c', '%s', '-u', '%s', '-p', '%s', '-m', '%s' & (from,to,pass,message)])

问题是我得到了一些错误,例如“String expected,tuple found”或“not not all converted to string”

我做错了什么?我一直在以前的python行中使用这种格式,但没有在参数中使用。

原因是这些变量以后会变为动态变量,而是从数据库中提取。

0 个答案:

没有答案