المبرمج العربي نشر 25 يناير 2016 أرسل تقرير نشر 25 يناير 2016 أريد تنزيل عدة ملفات باستخدام مكتبة requests بعضها كبيرة الحجم وبعضها الآخر صغيرة، فما الطريقة الصحيحة لتنزيل هذه الملفات في بايثون؟ اقتباس
0 هشام رزق الله نشر 25 يناير 2016 أرسل تقرير نشر 25 يناير 2016 يوجد العديد من الطرق في بايثون لفعل ذلك، فيمكنك على سبيل المثال استخدام دالة requests.get لتنزيل الملف ودالة copyfileobj من مكتبة shutil للحفظ إلى ملف كما في المثال التالي:import requests import shutil r = requests.get(settings.STATICMAP_URL.format(**data), stream=True) if r.status_code == 200: with open(path, 'wb') as f: r.raw.decode_content = True shutil.copyfileobj(r.raw, f) أما بالنسبة إلى الملفات الكبيرة فانصحك بالدوران حول الاستجابة (response) بعد تقسيمها إلى أجزاء ومن ثم كتابة الأجزاء في ملف كالتالي:with open('output.jpg', 'wb') as handle: response = requests.get('http://www.example.com/image.jpg', stream=True) if not response.ok: # Something went wrong for block in response.iter_content(1024): handle.write(block) اقتباس
السؤال
المبرمج العربي
أريد تنزيل عدة ملفات باستخدام مكتبة requests بعضها كبيرة الحجم وبعضها الآخر صغيرة، فما الطريقة الصحيحة لتنزيل هذه الملفات في بايثون؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.