Passer des Variables de sous-processus.Popen

J'ai un script qui appelle un autre script python en sous-processus.Popen module. Mais depuis que j'ai des arguments stockés dans la variable(s)

servers[server]['address']
servers[server]['port']
servers[server]['pass']

Je ne suis pas en mesure d'exécuter la commande

p = subprocess.Popen(["python mytool.py -a ", servers[server]['address'], "-x", servers[server]['port'], "-p", servers[server]['pass'], "some additional command"], shell=True, stdout=subprocess.PIPE)
Utiliser les variables pour construire une chaîne de caractères qui est de la commande, ou de les transmettre à une liste d'arguments.
Les réponses ne doivent pas être modifiés en questions. Ceci permet d'éviter le point de l'ensemble de la commande basée sur la communauté de vote pondéré, ce qui est particulièrement dangereux parce que la solution que vous utilisez a de graves failles de sécurité (si un nom de serveur contient $(rm -rf ~), devinez ce qui arrive?).
Voir aussi Est-il OK pour l'utilisateur de modifier la accepté de répondre à la question? sur Meta Stack Overflow.

OriginalL'auteur GaNi | 2013-11-22