Suite

Télécharger et traiter des fichiers raster en Python ?


Je suis assez nouveau sur python et je cherche des conseils pour une question qui peut sembler triviale pour beaucoup.

Existe-t-il un moyen d'utiliser « wget » dans un script python pour télécharger des fichiers raster à partir d'un serveur et les traiter dans le même script ?


Python a urllib2 intégré, qui ouvre un objet de type pointeur de fichier à partir d'une ressource IP (HTTP, HTTPS, FTP).

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

Vous pouvez ensuite transférer et écrire les octets localement (c'est-à-dire les télécharger) :

# Ouvrir un nouveau fichier pour l'écriture, même nom de fichier que la source rast_fname = os.path.basename(rast_url) outfp = open(rast_fname, 'wb') # Transférer les données… cela peut prendre un certain temps… outfp.write(infp.read( )) outfp.close() print('Votre fichier est à ' + os.path.join(os.getcwd(), rast_fname))

Maintenant, vous pouvez faire ce que vous voulez avec le fichier.


Quelques façons d'y parvenir. Vous pouvez utiliser le module subprocess pour appeler wget - voir http://docs.python.org/library/subprocess.html

sous-processus d'importation

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

Ou vous pouvez utiliser python pour télécharger le fichier directement en utilisant le module urllib (ou urllib2) - http://docs.python.org/library/urllib.html. Il y a des exemples dans la documentation.


Dans cette réponse précédente, il y a une méthode utilisant un appel à os.system.

os.system('wget %s' % (complet))