पायथन में रैस्टर फाइलों को डाउनलोड करना और प्रोसेस करना? [बन्द है]


11

मैं अजगर के लिए काफी नया हूं और एक सवाल के लिए मार्गदर्शन चाहता हूं जो कई लोगों के लिए मामूली लग सकता है।

वहाँ एक अजगर स्क्रिप्ट में 'wget' का उपयोग करने के लिए एक सर्वर से रेखापुंज फ़ाइलों को डाउनलोड करने और उन्हें एक ही स्क्रिप्ट में संसाधित करने का एक तरीका है?

जवाबों:


14

पायथन में urllib2 अंतर्निहित है, जो एक आईपी-रिसोर्स (HTTP, HTTPS, FTP) से फ़ाइल-पॉइंटर जैसी ऑब्जेक्ट खोलता है।

import urllib2, os

# See http://data.vancouver.ca/datacatalogue/2009facetsGridSID.htm
rast_url = 'ftp://webftp.vancouver.ca/opendata/2009sid/J01.zip'
infp = urllib2.urlopen(rast_url)

फिर आप स्थानीय रूप से बाइट्स को स्थानांतरित और लिख सकते हैं (यानी, इसे डाउनलोड करें):

# Open a new file for writing, same filename as source
rast_fname = os.path.basename(rast_url)
outfp = open(rast_fname, 'wb')

# Transfer data .. this can take a while ...
outfp.write(infp.read())
outfp.close()

print('Your file is at ' + os.path.join(os.getcwd(), rast_fname))

अब आप जो चाहें फाइल के साथ कर सकते हैं।


1
+1 यह इस तरह से करना थोड़ा अधिक जटिल लग सकता है लेकिन यह अधिक पोर्टेबल होगा और डीबग करना आसान होगा क्योंकि आपके पास बाहरी निर्भरता नहीं है।
शॉन

5

इसे पूरा करने के कुछ तरीके। आप wpro को कॉल करने के लिए सबप्रोसेस मॉड्यूल का उपयोग कर सकते हैं - http://docs.python.org/library/subprocess.html

import subprocess

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

या आप urllib (या urllib2) मॉड्यूल - http://docs.python.org/library/urllib.html का उपयोग करके सीधे फ़ाइल डाउनलोड करने के लिए अजगर का उपयोग कर सकते हैं । प्रलेखन में उदाहरण हैं।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.