2015-04-23 2 views
3

Я хотел бы ввести номер телефона raw_input и использовать эту переменную в моей команде bash для отправки сообщения. Я не знаю, как установить переменную $ Phonenumber. Без входа RAW он работает как шарм. Я использую Python 2.7.Используйте переменную Python в команде bash с os.system

import os 

Phonenumber = raw_input("Number?) 

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

ответ

4

Если вы хотите придерживаться с помощью os.system, чтобы сделать ваши звонки, вы можете просто отформатировать команду, пройти к нему:

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


Однако , chepner поднимает хороший момент в его ответе. Вы действительно должны использовать модуль 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"]) 

Вы можете проверить больше на subprocesshere.

+0

Это работает! Спасибо за помощь! –

1

использование:

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

Метод работы Джейка. Но вместе с решением я получаю ошибку (спасибо в любом случае): Traceback (самый последний вызов последнего): File «», линия 1, в TypeError:% формат D: номер необходим, не ул –

+0

Заменить '% d' с'% s' – cdarke

5

Использовать subprocess вместо этого; среди других функций, это делает цитату намного проще.

import subprocess 

phone_number = raw_input("Number?") 

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

подпроцесс - лучший подход - и заменяет popen (который устарел) ++ – cgseller

Смежные вопросы