2016-07-05 6 views
0

im so neu in Python im versuchen Variablen mit Wget passierenPython Pass Variablen mit wget und Prüfergebnis

Code:

USERID = 201   
RES = os.system("wget http://localhost/ -O /usr/setting.txt") 
if RES == error: 
print RES 
else 
print 'good' 

was ich passieren müssen, ist

http://localhost/?userid=203 or username=james 

und dann lesen Sie die empfangenen Daten

Wie kann ich das erreichen?

vertrauen Sie mir, ich sah eine Menge Zeug geschrieben, aber ich bin immer noch verloren.

danke :)

+1

Warum verwenden Sie nicht 'urllib2.urlopen()' oder das 'requests' Modul, um die URL abzurufen? Müssen Sie die Antwort in einer Datei speichern? – mhawke

+0

@mhawke Ich wurde gebeten, ** os.system ** zu verwenden und ja ich muss die Einstellung in Datei speichern – Jah

Antwort

1

die etwas seltsame Einschränkung gegeben, dass Sie os.system() verwenden, müssen Sie den Befehl Zeichenfolge wie folgt konstruieren:

import os 

user_id = 201  
dest_filename = '/tmp/setting.txt' 
command = 'wget http://localhost/userid={} -O {}'.format(user_id, dest_filename) 
res = os.system(command) 
if res == 0: 
    with open(dest_filename) as f: 
     response = f.read() 
     # process response 
else: 
    print('Command {!r} failed with exit code {}'.format(command, rv)) 

Sie können den Befehl Konstruktion anpassen einen Benutzernamen zu verwenden:

user_name = 'james' 
command = 'wget http://localhost/username={} -O {}'.format(user_name, dest_filename) 
+0

Es ist nicht meine Wahl :(Ich muss das verwenden. – Jah

+0

Wie kann ich mehrere Variablen auf einmal verwenden? zB userid = 10 & cmd = list versuchte ich ** command = 'wget http: // localhost/benutzername = {} & cmd = {} -O {}'. format (cmd, cmd, dest_filename) ** aber nicht Arbeit – Jah

+1

Das wird einfach 'cmd' zweimal hinzufügen. Tun Sie dies:' command = 'wget http: // localhost/userid = {} & cmd = {}' .format (benutzer_id, cmd, dest_filename) '. – mhawke