2017-02-20 61 views
1

我想一個網頁的內容下載到一個文本文件,以及散的URL生成唯一的文件名..喜歡的東西:使用子進程來處理多個管道命令

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

下載內容的網頁不是我的問題;它通過散列生成文件名。我正在python終端中嘗試這段代碼,但它正在生成這個錯誤,就好像模塊沒有被導入或安裝,但實際上是這樣。簡單的命令如「ls」可以正常工作。

>>> 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 

謝謝!

回答

1

嘗試改變調用(CMD)來調用(CMD,殼=真)

+0

我沒有和它的工作,但不得不這樣稱呼它 >>> subprocess.call(CMD,殼=真) de8b64952e61cc4c6a38df2d17bb8e0d - 你知道零是從哪裏來的嗎?謝謝一堆! –

+0

這可能是你的退出代碼。如果你想捕獲輸出而不是exitcode,你可以使用subprocess.check_output() –