fork(1) download
  1. import os
  2. import requests
  3. from multiprocessing import Pool
  4.  
  5.  
  6. def get_file(url):
  7. r = requests.get(url, stream=True)
  8. return r
  9.  
  10.  
  11. def get_name(url):
  12. name = url.split('/')[-1]
  13. folder = name.split('.')[0]
  14. if not os.path.exists(folder):
  15. os.makedirs(folder)
  16. path = os.path.abspath(folder)
  17. return path + '/' + name
  18.  
  19.  
  20. def save_image(name, file_object):
  21. with open(name, 'bw') as f:
  22. for chunk in file_object.iter_content(8192):
  23. f.write(chunk)
  24.  
  25. def main():
  26. #for url in urls:
  27. # save_image(get_name(url), get_file(url))
  28.  
  29. urls = ['tipidor.jpg', 'azaza.jpg', 'anonhelp.jpg']
  30.  
  31. with Pool(10) as p:
  32. p.map(save_image, urls)
  33.  
  34. if __name__ == '__main__':
  35. main()
Runtime error #stdin #stdout #stderr 0.37s 34600KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Traceback (most recent call last):
  File "./prog.py", line 35, in <module>
    main()
  File "./prog.py", line 31, in main
    with Pool(10) as p:
  File "/usr/lib/python3.7/multiprocessing/context.py", line 119, in Pool
    context=self.get_context())
  File "/usr/lib/python3.7/multiprocessing/pool.py", line 176, in __init__
    self._repopulate_pool()
  File "/usr/lib/python3.7/multiprocessing/pool.py", line 241, in _repopulate_pool
    w.start()
  File "/usr/lib/python3.7/multiprocessing/process.py", line 112, in start
    self._popen = self._Popen(self)
  File "/usr/lib/python3.7/multiprocessing/context.py", line 277, in _Popen
    return Popen(process_obj)
  File "/usr/lib/python3.7/multiprocessing/popen_fork.py", line 20, in __init__
    self._launch(process_obj)
  File "/usr/lib/python3.7/multiprocessing/popen_fork.py", line 70, in _launch
    self.pid = os.fork()
BlockingIOError: [Errno 11] Resource temporarily unavailable