2017-02-20 1 views
1

Ich versuche, den Inhalt einer Web-Seite in eine Textdatei, und Hash der URL zu erzeugen eindeutige Dateinamen herunterladen .. So etwas wie:subprocess mehrere verrohrt verarbeiten Mit Befehlen

$ echo -n "http://www.hussam.us" | md5sum 
de8b64952e61cc4c6a38df2d17bb8e0d - 

Herunterladen der Inhalte von einer Webseite ist nicht mein Problem; Es erzeugt die Dateinamen durch Hashing. Ich versuche diesen Code in Python-Terminal, aber es erzeugt diesen Fehler, als ob das Modul nicht importiert oder installiert ist, aber es ist tatsächlich. Einfache Befehle wie "ls" funktionieren gut.

>>> import subprocess  
>>> cmd = 'echo -n "http://www.hussam.us" | md5sum' 
>>> call(cmd) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.7/subprocess.py", line 523, in call 
    return Popen(*popenargs, **kwargs).wait() 
    File "/usr/lib/python2.7/subprocess.py", line 711, in __init__ 
    errread, errwrite) 
    File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child 
    raise child_exception 
OSError: [Errno 2] No such file or directory 

Vielen Dank!

Antwort

1

Versuchen Aufruf zu ändern (cmd) zu nennen (cmd, shell = True)

+0

Ich habe und es funktionierte, aber hatte es wie diese >>> subprocess.call zu nennen (cmd, shell = True) de8b64952e61cc4c6a38df2d17bb8e0d - Haben Sie eine Idee, woher die Null kam? Vielen Dank! –

+0

Es ist wahrscheinlich Ihr Exit-Code. Wenn Sie die Ausgabe anstelle des Exitcodes erfassen möchten, können Sie subprocess.check_output() verwenden. –

Verwandte Themen