Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Popen只下载一个文件_Python_Asynchronous_Process_Popen - Fatal编程技术网

Python Popen只下载一个文件

Python Popen只下载一个文件,python,asynchronous,process,popen,Python,Asynchronous,Process,Popen,我有一个flickapi.py文件,可以像./flickrapi author photos那样调用它,它可以下载20张照片 如果我直接打电话或使用 x = popen(['./flickrapi', 'author', 'photos', name]) x.wait() x.communicate() 一切都好 但如果我只使用 popen(['./flickrapi', 'author', 'photos', name]) 只下载了一张照片 我只需要异步调用脚本来下载照片,有什么建议吗?我

我有一个flickapi.py文件,可以像./flickrapi author photos那样调用它,它可以下载20张照片

如果我直接打电话或使用

x = popen(['./flickrapi', 'author', 'photos', name])
x.wait()
x.communicate()
一切都好

但如果我只使用

popen(['./flickrapi', 'author', 'photos', name])
只下载了一张照片


我只需要异步调用脚本来下载照片,有什么建议吗?

我想这是因为缓冲区的大小
communicate()
将把数据放入内存,这样程序就不会卡住。当然,所有的照片都会被下载。以下是
等待
通信
功能的详细信息


希望有帮助。

真正的问题是什么?为什么不能按最初描述的那样调用?问题是,我需要异步调用进程,所以如果“调用者”将结束,子进程将继续。。。我不想等待下载结束…:)你的意思是,问题在于产出?如果所有照片都使用urllib下载到具体文件,为什么会卡住?@KOLEGA我不知道flickrapi做了什么。但是我想如果你不调用wait和comminucate,它会下载一个有限的缓冲区大小的文件(我记得限制是64KB),然后停止。调用单行popen(['./flickrapi.py',asda''ASD''ASD'])会造成问题。。。当我不使用wait()和communicate()时,这不是他们的问题。。。