أكثر

تنزيل الملفات النقطية ومعالجتها في Python؟


أنا جديد إلى حد ما على Python وأطلب إرشادات لسؤال قد يبدو تافهاً للكثيرين.

هل هناك طريقة لاستخدام "wget" في برنامج نصي بيثون لتنزيل الملفات النقطية من الخادم ومعالجتها في نفس البرنامج النصي؟


تحتوي Python على urllib2 مدمج ، والذي يفتح كائنًا يشبه مؤشر الملف من مورد IP (HTTP ، HTTPS ، FTP).

استيراد urllib2 ، نظام التشغيل # راجع http://data.vancover.ca/datacatalogue/2009facetsGridSID.htm rast_url = 'ftp://webftp.vancover.ca/opendata/2009sid/J01.zip' infp = urllib2.urlopen (rast_url)

يمكنك بعد ذلك نقل البايتات وكتابتها محليًا (أي تنزيلها):

# افتح ملفًا جديدًا للكتابة ، نفس اسم الملف مثل المصدر rast_fname = os.path.basename (rast_url) outfp = open (rast_fname، 'wb') # نقل البيانات ... قد يستغرق ذلك بعض الوقت ... outfp.write (infp.read ( )) outfp.close () print ('ملفك على' + os.path.join (os.getcwd ()، rast_fname))

الآن يمكنك أن تفعل ما تريد بالملف.


طريقتان لإنجاز هذا. يمكنك استخدام وحدة العملية الفرعية لاستدعاء wget - راجع http://docs.python.org/library/subprocess.html

عملية الاستيراد الفرعية

retcode = subprocess.call (["wget"، args])

أو يمكنك استخدام python لتنزيل الملف مباشرةً باستخدام وحدة urllib (أو urllib2) - http://docs.python.org/library/urllib.html. هناك أمثلة في الوثائق.


في هذه الإجابة السابقة هي طريقة تستخدم استدعاء os.system.

os.system ('wget٪ s'٪ (fullurl))


شاهد الفيديو: Section 6 (شهر اكتوبر 2021).