4

I would like to enter an phone number with raw_input and use this variable in my bash command for sending a message. I don't know how to set the variable $Phonenumber. Without the RAW Input, it works like a charm. I use Python 2.7.

import os

Phonenumber = raw_input("Number?)

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

3 Answers 3

6

If you want to stick with using os.system to make your calls, you can just format the command you pass to it:

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


However, chepner brings up a good point in his answer. You should really be using the subprocess module for things like this, as it is a much more flexible tool. To get the same behavior using subprocess, just pass a list to subprocess.call with the elements being all the space separated segments of your call:

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

You can check out more on subprocess here.

Sign up to request clarification or add additional context in comments.

Comments

5

Use subprocess instead; among other features, it makes quoting much easier.

import subprocess

phone_number = raw_input("Number?")

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

1 Comment

subprocess is the better approach - and replaces popen (which is deprecated) ++
1

use:

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

2 Comments

The method of Jake works. But with your solution I get an error (Thanks anyway): Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: %d format: a number is required, not str
Replace the %d with %s

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.