2017-02-20 86 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() –