在bash命令中使用带有os.system的Python变量

时间:2015-04-23 20:53:45

标签: python macos bash variables os.system

我想输入一个raw_input的电话号码,并在我的bash命令中使用此变量发送消息。我不知道如何设置变量$ Phonenumber。没有RAW输入,它就像一个魅力。我使用Python 2.7。

import os

Phonenumber = raw_input("Number?)

os.system("yowsup-cli demos --login PHONE:PASSWORD= --send '$Phonenumber' 'MESSAGE'")

3 个答案:

答案 0 :(得分:5)

改用subprocess;除了其他功能之外,它还使报价变得更加容易。

import subprocess

phone_number = raw_input("Number?")

subprocess.call(["yowsup-cli", "demos", "--login", "PHONE:PASSWORD=",
                 "--send", phone_number, "MESSAGE"])

答案 1 :(得分:4)

如果您想坚持使用os.system拨打电话,您只需格式化传递给它的命令:

import os
phone_number = raw_input("Number?")
os.system("yowsup-cli demos --login PHONE:PASSWORD= --send '{0}' 'MESSAGE'".format(phone_number))


然而,切普纳在他的回答中提出了一个很好的观点。你应该真的使用subprocess模块来做这样的事情,因为它更加flexible tool。要使用subprocess获得相同的行为,只需将列表传递给subprocess.call,其中元素是您呼叫的所有空格分隔段:

import subprocess
phone_number = raw_input("Number?")
subprocess.call(["yowsup-cli", "demos", "--login" "PHONE:PASSWORD=", "--send", phone_number, "MESSAGE"])

您可以在subprocess here上查看更多内容。

答案 2 :(得分:1)

使用:

os.system("yowsup-cli demos --login PHONE:PASSWORD= --send '%d' 'MESSAGE'" % Phonenumber)