har*_*ish 6 python curl subprocess
我试图curl从subprocess下载图像调用,但不断得到卷曲错误(错误代码2 ..来自doc指的是CURL_FAILED_INIT).我没有使用,urllib因为我最终将使用执行脚本subprocess.以下是代码段
import subprocess
import multiprocessing
def worker(fname, k):
f = open(fname, 'r')
i = 0
for imgurl in f:
try:
op = subprocess.call(['curl', '-O', imgurl], shell=False)
except:
print 'problem downloading image - ', imgurl
def main():
flist = []
flist.append(sys.argv[1])
flist.append(sys.argv[2])
...
for k in range(1):
p = multiprocessing.Process(target=worker, args=(flist[k],k))
p.start()
Run Code Online (Sandbox Code Playgroud)
curl:尝试'curl --help'或'curl --manual'获取更多信息
2
curl:尝试'curl --help'或'curl --manual'获取更多信息
2
....
小智 7
如果要运行shell命令,则可以使用子进程.由于这可以在其自己的进程中启动shell命令,因此使用多处理最多是多余的.当你想在不同的进程中运行python程序的一个函数时,多处理就派上用场了.您似乎打算运行shell命令,而不是python函数.
我不熟悉curl.如果您打算从中获取标准输出curl,请使用subprocess.Popen().subprocess.call()返回程序返回代码,而不是stdout.
请参阅http://docs.python.org/release/3.2/library/subprocess.html
就像是:
subp = subprocess.Popen(['curl', '-O', imgurl], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
curlstdout, curlstderr = subp.communicate()
op = str(curlstdout)
Run Code Online (Sandbox Code Playgroud)
可能会更近.curl我说的不熟悉,所以你的程序可能会有所不同.
| 归档时间: |
|
| 查看次数: |
7339 次 |
| 最近记录: |