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

Jes*_*aal 3 python variables macos bash 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'")
Run Code Online (Sandbox Code Playgroud)

nea*_*ick 5

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

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


然而,chepner 在他的回答中提出了一个很好的观点。您真的应该将subprocess模块用于此类事情,因为它是一个更加灵活的工具。要使用 获得相同的行为subprocess,只需将列表传递给subprocess.call元素是调用的所有空格分隔段:

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

您可以在subprocess 此处查看更多信息


che*_*ner 5

使用subprocess代替; 除了其他功能,它使报价更容易.

import subprocess

phone_number = raw_input("Number?")

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