تحميل ملف باستخدام طريقة البريد والثعبان

StackOverflow https://stackoverflow.com/questions/869679

  •  22-08-2019
  •  | 
  •  

سؤال

وأحتاج القليل من المساعدة في الحصول على ملف القطران للتحميل من موقع على شبكة الانترنت. يتم تعيين موقع على شبكة الانترنت كشكل حيث يمكنك اختيار الملف الذي تريد وانقر فوق تقديم وثم تحميل ويندوز ليفتح لك لاختيار الموقع.

وأنا أحاول أن تفعل الشيء نفسه في التعليمات البرمجية (ولذا فإنني لم يكن لديك لدليل اختيار كل ملف). حتى الآن لقد حصلت الثعبان 2.5.2 لإرجاع استجابة ولكن لها في socket._fileobject وأنا الآن غير متأكد من كيفية تحويل هذه الأفكار إلى ملف على جهاز الكمبيوتر الخاص بي.

وفيما يلي إخراج قذيفة الثعبان والخطوات التي اتخذت

Python 2.5.2 on win32

IDLE 1.2.2      
>>> import urllib
>>> import urllib2
>>> url = 'http://website/getdata.php'
>>> values = {'data[]': 'filex.tar'}
>>> data = urllib.urlencode(values)
>>> req = urllib2.Request(url,data)
>>> response = urllib2.urlopen(req)
>>> response
addinfourl at 22250280 whose fp = <socket._fileobject object at 0x01534570
>>> response.fp
socket._fileobject object at 0x01534570
هل كانت مفيدة؟

المحلول

وإلحاق هذا:

myfile = open('myfile.tar', 'wb')
shutil.copyfileobj(response.fp, myfile)
myfile.close()

وresponse.fp هو كائن مثل الملف الذي يمكنك أن تقرأ من، تماما مثل ملف مفتوح. shutil.copyfileobj() هي وظيفة بسيطة أن يقرأ من وجوه تشبه ملف واحد ويكتب محتوياتها إلى آخر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top