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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.